ฉันกำลังพัฒนา shmup 2D (เช่นAero Fighters ) และฉันสงสัยว่ามีวิธีการอะไรหลายวิธีในการจัดเก็บระดับ สมมติว่าศัตรูถูกกำหนดในไฟล์ xml ของตัวเองคุณจะกำหนดอย่างไรเมื่อศัตรูวางไข่ในระดับ
มันจะขึ้นอยู่กับเวลา? อัพเดท? ระยะทาง?
ขณะนี้ฉันทำตาม "ระดับเวลา" (จำนวนเวลาที่ระดับกำลังทำงานอยู่การหยุดชั่วคราวจะไม่อัปเดตเวลา) นี่คือตัวอย่าง (การทำให้เป็นลำดับโดย XNA):
<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:level="pekalicious.xanor.XanorContentShared.content.level">
<Asset Type="level:Level">
<Enemies>
<Enemy>
<EnemyType>data/enemies/smallenemy</EnemyType>
<SpawnTime>PT0S</SpawnTime>
<NumberOfSpawns>60</NumberOfSpawns>
<SpawnOffset>PT0.2S</SpawnOffset>
</Enemy>
<Enemy>
<EnemyType>data/enemies/secondenemy</EnemyType>
<SpawnTime>PT0S</SpawnTime>
<NumberOfSpawns>10</NumberOfSpawns>
<SpawnOffset>PT0.5S</SpawnOffset>
</Enemy>
<Enemy>
<EnemyType>data/enemies/secondenemy</EnemyType>
<SpawnTime>PT20S</SpawnTime>
<NumberOfSpawns>10</NumberOfSpawns>
<SpawnOffset>PT0.5S</SpawnOffset>
</Enemy>
<Enemy>
<EnemyType>data/enemies/boss1</EnemyType>
<SpawnTime>PT30S</SpawnTime>
<NumberOfSpawns>1</NumberOfSpawns>
<SpawnOffset>PT0S</SpawnOffset>
</Enemy>
</Enemies>
</Asset>
</XnaContent>
แต่ละองค์ประกอบของศัตรูนั้นเป็นคลื่นของศัตรูเฉพาะประเภท ประเภทถูกกำหนดใน EnemyType ในขณะที่ SpawnTime เป็น "ระดับเวลา" คลื่นนี้ควรปรากฏขึ้น NumberOfSpawns และ SpawnOffset คือจำนวนศัตรูที่จะปรากฏขึ้นและเวลาที่ใช้ระหว่างการวางไข่แต่ละครั้งตามลำดับ
นี่อาจเป็นความคิดที่ดีหรืออาจมีสิ่งที่ดีกว่าออกไป ฉันไม่แน่ใจ. ฉันต้องการที่จะเห็นความคิดเห็นและความคิดบางอย่าง
ฉันมีสองปัญหาในเรื่องนี้: วางไข่ศัตรูอย่างถูกต้องและสร้างเครื่องมือแก้ไขระดับ สิ่งที่แก้ไขระดับเป็นปัญหาที่แตกต่างกันอย่างสิ้นเชิง (ซึ่งฉันอาจจะโพสต์ในอนาคต: P)
สำหรับการวางไข่อย่างถูกต้องปัญหาอยู่ที่ว่าฉันมีเวลาอัปเดตตัวแปรดังนั้นฉันต้องแน่ใจว่าฉันจะไม่พลาดการเกิดของศัตรูเพราะการวางไข่ของศัตรูมีขนาดเล็กเกินไปหรือเนื่องจากการอัปเดตใช้เวลานานกว่าเล็กน้อย . ฉันแก้ไขมันเป็นส่วนใหญ่ แต่สำหรับฉันแล้วดูเหมือนว่าปัญหาจะเกิดขึ้นกับวิธีที่ฉันเก็บระดับ
ดังนั้นความคิดใด ๆ ความคิดเห็น?
ขอบคุณล่วงหน้า.