Tekrar gözden geçirilebilen bir dizi birbirine bağlı seviyeden oluşan bir 2D Metroidvania geliştiriyorum.
Her seviye, farklı hareketli grafik sınıflarının çeşitli nesnelerinin (örneğin, düşmanlar, pikaplar, kollar vb.) Ortaya çıktığı yerlerde belirlediğim döşenmiş bir TMX dosyası ile temsil edilir . Yeni bir oyun başlatırken, kaydedilmiş bir oyunu yüklerken veya bir seviyeyi değiştirirken, oyun döngüm uygun TMX dosyası üzerinden çalışır ve bu düzeydeki tüm nesneleri oluşturur.
Seviye değişikliklerini şu şekilde ele alıyorum: Player
Nesne bir nesneyle kesişiyorsa Portal
, change_map()
yeni bir harita yükleyen (kesişen portalla ilişkili olan) ve oynatıcıyı yeni harita üzerinde uygun bir konuma yerleştiren bir yöntem çağrılır.
Nesnelerimden bazıları, seviye değişiklikleri ve oyunu kaydetme ve oyundan çıkma yoluyla kalıcı olmak istediğim durumlara sahip . Örneğin, bir oyuncu bir kapının kilidini açarsa ve kapının durum özelliği "açık" olarak ayarlanırsa, oynatıcı geri döndüğünde kapının açık olmasını isterim. Sol veya sağ olarak ayarlanabilen kollar ve diğer çeşitli nesneler için benzer bir şey istiyorum. Ayrıca, oyuncu bazen alanı tekrar ziyaret ettiğinde yeniden doğmak istemediğim eşyaları toplar.
Sorum şu; bu tür bir kalıcılığı nasıl ele alabilirim?
Python'da çalışıyorum, ancak bundan soyutlayabileceğinizi düşünüyorum.