Saya sedang mengerjakan game 2D di mana Anda dapat bergerak ke atas, bawah, kiri dan kanan. Saya memiliki dua objek logika permainan:
- Pemain: Memiliki posisi relatif terhadap dunia
- Dunia: Menggambar peta dan pemain
Sejauh ini, Dunia tergantung pada Player (yaitu memiliki referensi untuk itu), membutuhkan posisinya untuk mencari tahu di mana menggambar karakter pemain, dan bagian mana dari peta untuk menggambar.
Sekarang saya ingin menambahkan deteksi tabrakan untuk membuatnya mustahil bagi pemain untuk bergerak menembus dinding.
Cara paling sederhana yang bisa saya pikirkan adalah meminta Pemain bertanya kepada Dunia apakah gerakan yang dimaksud itu mungkin. Tapi itu akan memperkenalkan ketergantungan melingkar antara Player dan Dunia (yaitu masing-masing memegang referensi ke yang lain), yang tampaknya layak dihindari. Satu-satunya cara saya datang adalah untuk memiliki Dunia memindahkan Pemain , tetapi saya menemukan itu agak tidak intuitif.
Apa pilihan terbaik saya? Atau apakah menghindari ketergantungan sirkular tidak sepadan?