Tôi đang phát triển một shmup 2D (tức là Máy bay chiến đấu ) và tôi đã tự hỏi những cách khác nhau để lưu trữ một cấp độ. Giả sử rằng kẻ thù được xác định trong tệp xml của riêng chúng, bạn sẽ xác định như thế nào khi kẻ thù xuất hiện ở cấp độ?
Nó sẽ được dựa trên thời gian? Cập nhật? Khoảng cách?
Hiện tại tôi làm điều này dựa trên "thời gian cấp độ" (lượng thời gian mà cấp độ đang chạy - tạm dừng không cập nhật thời gian). Dưới đây là một ví dụ (việc xê-ri hóa được thực hiện bởi 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>
Mỗi phần tử Kẻ thù về cơ bản là một làn sóng các loại kẻ thù cụ thể. Loại được xác định trong EnemyType trong khi SpawnTime là "mức thời gian" mà sóng này sẽ xuất hiện. NumberOfSpawns và Spawn Offerset là số lượng kẻ thù sẽ xuất hiện và thời gian giữa mỗi lần sinh sản tương ứng.
Đây có thể là một ý tưởng tốt hoặc có thể có những ý tưởng tốt hơn ngoài kia. Tôi không chắc. Tôi muốn xem một số ý kiến và ý tưởng.
Tôi có hai vấn đề với điều này: sinh ra kẻ thù một cách chính xác và tạo một trình soạn thảo cấp độ. Điều biên tập cấp độ là một vấn đề hoàn toàn khác (mà tôi có thể sẽ đăng trong tương lai: P).
Đối với việc sinh sản một cách chính xác, vấn đề nằm ở chỗ tôi có thời gian cập nhật thay đổi và vì vậy tôi cần đảm bảo rằng tôi không bỏ lỡ sinh sản của kẻ thù vì bù đắp sinh sản quá nhỏ hoặc do quá trình cập nhật mất thêm một chút thời gian . Tôi đã sửa nó cho hầu hết các phần, nhưng dường như vấn đề là cách tôi lưu trữ cấp độ.
Vậy, có ý kiến gì không? Bình luận?
Cảm ơn bạn trước.