Saya sedang mengembangkan Metroidvania 2D yang terdiri dari serangkaian level yang saling berhubungan yang dapat ditinjau kembali.
Setiap level diwakili oleh file TMX Tiled di mana saya telah menentukan di mana berbagai objek dari berbagai kelas sprite muncul (misalnya, musuh, pickup, tuas, dll.). Saat memulai gim baru, memuat gim yang disimpan, atau mengubah level, loop gim saya berjalan melalui file TMX yang sesuai dan menghasilkan semua objek di level itu.
Saya menangani perubahan level dengan cara berikut: Jika Player
objek memotong suatu Portal
objek, sebuah change_map()
metode disebut yang memuat peta baru (yang terkait dengan portal berpotongan) dan menempatkan pemain pada posisi yang sesuai di peta baru.
Beberapa objek saya memiliki status yang ingin saya gigih melalui perubahan level dan menyimpan serta keluar dari game. Misalnya, jika pemain membuka kunci pintu dan atribut status pintu diatur ke "terbuka," Saya ingin pintu terbuka ketika pemain kembali. Saya ingin sesuatu yang serupa untuk tuas, yang dapat diatur ke kiri atau kanan, dan berbagai objek lainnya. Selanjutnya, pemain kadang-kadang akan mengumpulkan item yang saya tidak ingin respawn ketika pemain mengunjungi kembali daerah tersebut.
Pertanyaan saya adalah bagaimana saya bisa mengatasi kegigihan seperti ini?
Saya bekerja di Python, meskipun saya pikir Anda bisa abstrak jauh dari itu.