Berpikir tentang permainan biasa, tidak masalah jenis permainannya, sangat mungkin kita membutuhkan beberapa jenis kamera. Sebagai contoh:
- Kamera debug: dikendalikan oleh keyboard dan mouse, dengan itu kami dapat bergerak di mana saja di tempat kami.
- Kamera skrip: dengan itu kita dapat menginstruksikan kamera untuk bergerak, mengikuti jalur yang ditentukan.
- Kamera pemain.
- ...
Masing-masing jenis kamera ini memiliki fungsi pembaruan sendiri. Sistem termudah (dan buruk), adalah memiliki kelas manajer kamera dengan fungsi pembaruan generik dan fungsi pembaruan khusus untuk setiap jenis kamera. Di dalam fungsi pembaruan umum kami memiliki pernyataan sakelar yang, berdasarkan pada jenis kamera, memanggil fungsi pembaruan yang tepat.
Alih-alih ini saya sudah memikirkan pendekatan lain: pola strategi. Kami memindahkan setiap perilaku kamera (metode pembaruan) dalam kelas yang sesuai yang mengimplementasikan antarmuka umum. Di manajer kamera kami memiliki anggota untuk antarmuka itu, dan kami dapat mengatur secara dinamis setiap perilaku yang kita inginkan.
Apa pendapatmu tentang itu? Sistem apa lagi yang Anda sarankan untuk saya? Terima kasih.
Info tambahan: ada kemungkinan nyata bahwa saya memerlukan lebih dari satu kamera aktif, misalnya untuk refleksi. Singkatnya, saya harus memperhitungkannya juga.