如何存储shmup级别?
我正在开发2D shmup(即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中发布)。 至于正确生成,问题在于我的更新时间可变,因此我需要确保不会错过敌人的生成,因为生成偏移量太小,或者更新花费了更多时间。我在很大程度上修复了它,但是在我看来,问题出在我如何存储水平上。 那么,有什么想法吗?注释? 先感谢您。