Các máy trạng thái dường như gây ra sự phụ thuộc có hại trong các kiến trúc dựa trên thành phần.
Cụ thể, giao tiếp được xử lý như thế nào giữa một máy trạng thái và các thành phần thực hiện hành vi liên quan đến trạng thái?
Tôi đang ở đâu:
- Tôi chưa quen với kiến trúc dựa trên thành phần.
- Tôi đang làm một trò chơi chiến đấu, mặc dù tôi không nghĩ điều đó quan trọng. Tôi hình dung máy trạng thái của tôi đang được sử dụng để chuyển đổi các trạng thái như "cúi mình", "lao", "chặn", v.v.
- Tôi đã thấy kỹ thuật quản lý nhà nước này là hệ thống tự nhiên nhất cho kiến trúc dựa trên thành phần, nhưng nó mâu thuẫn với các kỹ thuật tôi đã đọc về: Hệ thống thành phần đối tượng trò chơi động cho các nhân vật hành vi có thể thay đổi Nó gợi ý rằng tất cả các thành phần kích hoạt / hủy kích hoạt chính họ bằng cách liên tục kiểm tra một điều kiện để kích hoạt.
- Tôi nghĩ rằng các hành động như "chạy" hoặc "đi bộ" có ý nghĩa như các trạng thái, không đồng ý với phản hồi được chấp nhận ở đây: /gamedev//a/7934
Tôi đã thấy điều này hữu ích, nhưng mơ hồ: Làm thế nào để thực hiện hành vi trong kiến trúc trò chơi dựa trên thành phần? Nó gợi ý có một thành phần riêng biệt không chứa gì ngoài một máy trạng thái. Nhưng, điều này đòi hỏi một số loại khớp nối giữa thành phần máy trạng thái và gần như tất cả các thành phần khác. Tôi không hiểu cách xử lý khớp nối này. Đây là một số dự đoán:
A. Các thành phần phụ thuộc vào máy trạng thái:
Các thành phần nhận được tham chiếu đến thành phần của máy trạng tháigetState()
, trả về hằng số liệt kê. Các thành phần tự cập nhật thường xuyên và kiểm tra điều này khi cần thiết.B. Máy
trạng thái phụ thuộc vào các thành phần: Thành phần máy trạng thái nhận các tham chiếu đến tất cả các thành phần mà nó giám sát. Nó truy vấn cácgetState()
phương thức của họ để xem họ đang ở đâu.C. Một số trừu tượng giữa chúng
Sử dụng một trung tâm sự kiện? Mẫu lệnh?D. Các đối tượng trạng thái riêng biệt tham chiếu thành phần
Mẫu trạng thái được sử dụng. Các đối tượng trạng thái riêng biệt được tạo, kích hoạt / hủy kích hoạt một tập hợp các thành phần. Máy trạng thái chuyển đổi giữa các đối tượng nhà nước.Tôi đang xem các thành phần như triển khai các khía cạnh . Họ làm mọi thứ cần thiết trong nội bộ để biến khía cạnh đó thành hiện thực. Có vẻ như các thành phần nên tự hoạt động, mà không cần dựa vào các thành phần khác. Tôi biết một số phụ thuộc là cần thiết, nhưng các máy trạng thái dường như muốn kiểm soát tất cả các thành phần của tôi.