मैं एक 2D shmup (यानी एयरो फाइटर्स ) विकसित कर रहा हूं और मैं सोच रहा था कि एक स्तर को स्टोर करने के विभिन्न तरीके क्या हैं। यह मानते हुए कि दुश्मनों को उनकी अपनी 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 दुश्मनों की संख्या है जो क्रमशः दिखाई देंगे और प्रत्येक स्पॉन के बीच समय लगेगा।
यह एक अच्छा विचार हो सकता है या वहाँ से बेहतर हो सकता है। मुझे यकीन नहीं है। मैं कुछ राय और विचार देखना चाहूंगा।
मुझे इसके साथ दो समस्याएं हैं: एक दुश्मन को सही ढंग से जगाने और एक स्तर संपादक बनाने के लिए। स्तरीय संपादक की बात एक पूरी तरह से अलग समस्या है (जो कि मैं शायद भविष्य में पोस्ट करूंगा: पी)।
के रूप में सही ढंग से spawning के लिए, समस्या इस तथ्य में निहित है कि मेरे पास एक चर अद्यतन समय है और इसलिए मुझे यह सुनिश्चित करने की आवश्यकता है कि मैं एक दुश्मन स्पॉन को याद नहीं करता हूं क्योंकि स्पॉन ऑफसेट बहुत छोटा है, या क्योंकि अपडेट में थोड़ा और समय लगता है । मैंने थोड़े समय के लिए इसे तय किया, लेकिन मुझे लगता है कि समस्या यह है कि मैं स्तर कैसे संग्रहीत करता हूं।
तो, कोई विचार? टिप्पणियाँ?
पहले ही, आपका बहुत धन्यवाद।