मैं एक 2 डी मेट्रोडवानिया विकसित कर रहा हूं जिसमें परस्पर स्तर की एक श्रृंखला शामिल है जिसे पुन: संशोधित किया जा सकता है।
प्रत्येक स्तर को एक टाइल वाली TMX फ़ाइल द्वारा दर्शाया गया है जिसमें मैंने निर्दिष्ट किया है कि विभिन्न स्प्राइट कक्षाओं की विभिन्न वस्तुएं (उदाहरण के लिए, दुश्मन, पिकअप, लीवर, आदि)। एक नया गेम शुरू करते समय, सहेजे गए गेम को लोड करना या एक स्तर बदलना, मेरा गेम लूप उपयुक्त TMX फ़ाइल से चलता है और उस स्तर की सभी वस्तुओं को उत्पन्न करता है।
मैं निम्न तरीके से स्तर में परिवर्तन को संभालता हूं: यदि Player
ऑब्जेक्ट किसी ऑब्जेक्ट को इंटरसेप्ट करता Portal
है, तो एक change_map()
विधि को कहा जाता है जो एक नया नक्शा (एक इंटरसेप्ट किए गए पोर्टल के साथ जुड़ा हुआ) लोड करता है और खिलाड़ी को नए नक्शे पर उपयुक्त स्थिति में रखता है।
मेरी कुछ वस्तुओं में राज्य हैं जिन्हें मैं स्तर में बदलाव और खेल को बचाने और छोड़ने के माध्यम से लगातार रहना चाहूंगा । उदाहरण के लिए, यदि कोई खिलाड़ी किसी दरवाज़े को अनलॉक करता है और दरवाज़े की राज्य विशेषता "ओपन" पर सेट होती है, तो मैं चाहूंगा कि जब खिलाड़ी वापस लौटे तो मैं दरवाज़ा खुला रखूं। मैं लीवर के लिए कुछ ऐसा ही चाहता हूं, जिसे बाएं या दाएं और विभिन्न अन्य वस्तुओं पर सेट किया जा सके। इसके अलावा, खिलाड़ी को कभी-कभी उन वस्तुओं को इकट्ठा करना होगा जो मैं खिलाड़ी को फिर से भेजना नहीं चाहता।
मेरा सवाल इस प्रकार है कि मैं इस तरह की दृढ़ता को कैसे संभाल सकता हूं?
मैं पायथन में काम कर रहा हूं, हालांकि मुझे लगता है कि आप इससे दूर रह सकते हैं।