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).
올바르게 스폰하는 데 문제는 가변 업데이트 시간이 있다는 사실에 있습니다. 따라서 스폰 오프셋이 너무 작거나 업데이트에 약간의 시간이 더 걸리기 때문에 적의 스폰을 놓치지 않아야합니다. . 나는 대부분 그것을 고쳤지만 레벨을 저장하는 방법에 문제가있는 것 같습니다.
그래서 어떤 아이디어? 코멘트?
미리 감사드립니다.