คำถามติดแท็ก tower-defense

8
เกมจะจัดการกับตัวละครทั้งหมดในครั้งเดียวได้อย่างไร?
คำถามนี้เป็นเพียงการได้รับความรู้เกี่ยวกับวิธีการที่เกมสามารถจัดการกับตัวละครมากมายในครั้งเดียว ฉันยังใหม่กับการเล่นเกมดังนั้นฉันจึงขอให้อภัยคุณล่วงหน้า ตัวอย่าง ฉันกำลังสร้างเกมป้องกันหอคอยที่มีช่องหอคอย 15 ช่องที่หอคอยถูกสร้างขึ้นและแต่ละหอจะยิงกระสุนออกมาในอัตราที่แน่นอน สมมติว่าทุก ๆ วินาทีมี 2 projectilesถูกสร้างขึ้นโดยแต่ละหอคอยและมีศัตรูเดินทัพในสนามรบให้บอกว่า 70 (แต่ละชนิดมีคุณลักษณะ 10 ประเภทเช่น HP, มานา ฯลฯ ซึ่งจะเปลี่ยนไปตามการเคลื่อนที่รอบ ๆ สนามรบ). สรุป จำนวนหอคอย = 15 Projectiles ที่สร้างโดยแต่ละหอคอยต่อวินาที = 2 จำนวนทั้งหมดของ Projectile ที่สร้างต่อวินาที = 30 หน่วยใน Battlefield Count = 70 ตอนนี้เกมจัดการ30 projectiles และ 70 ยูนิตโดยจัดการกับเธรด 100 หัวข้อ (ซึ่งมากเกินไปสำหรับพีซี) หรือ1 เธรดที่ย้ายทั้งหมดของพวกเขาลดค่าของพวกเขา ฯลฯ …

4
คุณจะบันทึกสถานะเกมได้อย่างไร
ขั้นตอนตามมาโดยโปรแกรมเมอร์เกมสำหรับการบันทึกและกลับสู่สถานะของเกมคืออะไร? ชอบไฟล์ / การแมป ฉันต้องการบันทึกไว้สำหรับเกมป้องกันหอคอยและฉันใช้เอ็นจิ้นเกม unity3D

9
อัลกอริทึมเส้นทางแบบไดนามิกสำหรับเกมป้องกันหอ
ฉันสร้าง Tower Defense และฉันต้องการอัลกอริทึม pathing ที่ดีสำหรับมัน ฉันคิดเกี่ยวกับ Dijkstra แต่ฉันต้องการสิ่งที่สามารถเปลี่ยนแปลงได้ จะต้องสามารถอัปเดตตัวเองได้เมื่อขอบหนึ่งถูกลบหรือเพิ่มโดยไม่มีการคำนวณใหม่ทั้งหมด ฉันกำลังเขียนโปรแกรมใน C # ถ้ามันช่วย

3
ฉันจะใช้คุณสมบัติ“ กรอไปข้างหน้า” ในเกมของฉันได้อย่างไร
ฉันจะใช้คุณสมบัติกรอไปข้างหน้าสำหรับเกมป้องกันหอคอยได้อย่างไรในhttp://fieldrunners.com/และเกม TD อื่น ๆ ฉันใช้ Unity 3D จะมีบางอย่างในการจัดการเฟรมที่น้อยลงต่อวินาทีหรือตั้งค่าการเคลื่อนไหวอย่างรวดเร็วของศัตรูและความเร็วในการยิงหอคอยหรือไม่?

4
การป้องกันหอคอยแบบ 2 มิติ - กระสุนใส่ศัตรู
ฉันกำลังพยายามหาวิธีแก้ปัญหาที่ดีสำหรับกระสุนเพื่อตีศัตรู เกมดังกล่าวเป็นการป้องกันหอคอยแบบ 2 มิติหอคอยควรจะยิงเป็นกระสุนและโจมตีศัตรูที่รับประกัน ฉันลองวิธีแก้ปัญหานี้ - http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/ ลิงค์ที่กล่าวถึงเพื่อลบต้นกำเนิดของกระสุนและศัตรูเช่นกัน (การลบเวกเตอร์) ฉันพยายามที่ แต่กระสุนเพียงแค่ติดตามรอบศัตรู float diffX = enemy.position.x - position.x; float diffY = enemy.position.y - position.y; velocity.x = diffX; velocity.y = diffY; position.add(velocity.x * deltaTime, velocity.y * deltaTime); ฉันคุ้นเคยกับเวกเตอร์ แต่ไม่แน่ใจว่าต้องดำเนินการขั้นตอนใด (การดำเนินการคณิตศาสตร์เวกเตอร์) เพื่อให้โซลูชันนี้ทำงานได้

1
ค้นหาเส้นทางที่สั้นที่สุดผ่านสิ่งกีดขวางเมื่อเส้นทางปกติทั้งหมดถูกปิดกั้น
ฉันกำลังสร้าง Tower Defense และฉันมีเส้นทางการเดินขั้นพื้นฐาน แต่ฉันมีปัญหา ฉันต้องการทำให้เส้นทางปิดกั้นได้และเมื่อมีการบล็อกเกิดขึ้นนักวิ่งจะโจมตีหอคอยปิดกั้น ดังนั้นสิ่งที่ฉันต้องการคือวิธีหาเส้นทางที่สั้นที่สุดที่สำคัญกว่าคือมีจำนวนหอคอยที่ต่ำที่สุด ฉันจะทำอย่างไร

1
gluLookAt ทำงานอย่างไร
จากความเข้าใจของฉัน gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); เทียบเท่ากับ: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); แต่เมื่อฉันพิมพ์ModelViewเมทริกซ์การเรียกเพื่อglTranslatef()ดูเหมือนจะทำงานไม่ถูกต้อง นี่คือข้อมูลโค้ด: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int …

5
ประสิทธิภาพลดลงในการนำ A * ไปใช้ในเกมป้องกันหอคอย
ฉันกำลังสร้างเกม Tower Defense ใน Flash โดยไม่มีเส้นทางที่กำหนดไว้ล่วงหน้า แม้ว่ากริดของฉันจะมีขนาด 40x40 (เล็ก) แต่ A * ก็ลำบากเมื่อคำนวณใหม่ทุกครั้ง ดังนั้นฉันจึงทำการดัดแปลงของตัวเองเพื่อความสะดวกในการคำนวณใหม่และจำนวนเซลล์ที่ถูกสัมผัสลดลงเหลือประมาณ 900 (เมื่อปรับเปลี่ยนใกล้รูต) มันยังคงค้างสำหรับระยะเวลาที่สั้นมาก แต่สามารถตรวจพบได้เมื่อวางหอคอยใหม่ นี่เป็นปัญหาการใช้งานหรือเป็น 40x40 มากเกินไปหรือไม่ แก้ไข: โครงสร้างของรหัสของฉัน: ข้อมูลทั้งหมดจะถูกบันทึกในเซลล์อาร์เรย์ 2 มิติ แต่ละเซลล์มีพาเรนต์ในทิศทางพา ธ (1-8 ตามเข็มนาฬิกา) และอาร์เรย์ที่เข้ารหัสระดับบิตของลูกในพา ธ (ทุกบิตแทนค่าเด็ก) การค้นหาดำเนินการโดย A * ด้วยการประมาณระยะทางยูคลิด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.