Suy nghĩ về một trò chơi thông thường, không quan trọng loại trò chơi, rất có thể chúng ta cần một số loại máy ảnh. Ví dụ:
- Camera gỡ lỗi: được điều khiển bằng bàn phím và chuột, với điều đó chúng ta có thể di chuyển xung quanh ở bất kỳ nơi nào trong cảnh.
- Camera theo kịch bản: với điều đó chúng ta có thể hướng dẫn camera di chuyển xung quanh, theo một đường dẫn xác định.
- Máy ảnh cầu thủ.
- ...
Mỗi loại máy ảnh này có chức năng cập nhật riêng. Hệ thống dễ nhất (và xấu) là có một lớp trình quản lý camera với chức năng cập nhật chung và các chức năng cập nhật chuyên biệt cho mọi loại camera. Bên trong chức năng cập nhật chung, chúng ta có một câu lệnh chuyển đổi, dựa trên loại máy ảnh, gọi chức năng cập nhật thích hợp.
Thay vì điều này tôi đã nghĩ đến một cách tiếp cận khác: mô hình chiến lược. Chúng tôi di chuyển từng hành vi camera (phương pháp cập nhật) trong một lớp thích hợp thực hiện giao diện chung. Trong trình quản lý camera, chúng tôi có một thành viên cho giao diện đó và chúng tôi có thể thiết lập bất kỳ hành vi nào chúng tôi muốn.
Bạn nghĩ gì về điều này? Những hệ thống khác mà bạn đề nghị cho tôi? Cảm ơn.
Thông tin bổ sung: có khả năng thực sự là tôi cần nhiều hơn một camera hoạt động, ví dụ như để phản chiếu. Nói tóm lại, tôi cũng phải tính đến điều đó.