Tôi đã làm quen với các nguyên tắc cơ bản của một công cụ trò chơi Java và tôi đã đạt đến điểm mà tôi đã sẵn sàng để thêm vào một hệ thống Trình quản lý sự kiện.
Về lý thuyết , tôi biết, Trình quản lý sự kiện nên làm gì: cho phép các đối tượng "đăng ký" cho một số sự kiện nhất định và bất cứ khi nào Trình quản lý sự kiện được thông báo về một sự kiện, hãy phát sự kiện đến người nghe "đã đăng ký". Những gì tôi đang bối rối là làm thế nào để bắt đầu thực hiện nó.
Tôi chưa thể tìm thấy bất cứ điều gì, trực tuyến, về việc triển khai một hệ thống sự kiện từ đầu, vì vậy tôi đang tìm kiếm đầu vào về những thực tiễn tốt nhất trong trường hợp này - những gì tôi nên và không nên làm.
Chẳng hạn, có thực sự cần thiết cho mỗi đối tượng trò chơi của tôi để có một EventManager
trường không? Vì tất cả các đối tượng trò chơi của tôi thừa hưởng từ một lớp cha duy nhất, trừu tượng, tôi nghĩ rằng tôi có thể sử dụng một tham chiếu tĩnh để chỉ có một phiên bản của Trình quản lý sự kiện, được chia sẻ giữa tất cả các đối tượng trò chơi. Tôi làm một cái gì đó tương tự, với Applet, mà tôi sử dụng để kết xuất từng đối tượng.
Tôi cho rằng tôi phải duy trì một bộ sưu tập nào đó cho mỗi sự kiện được đăng ký có thể - thêm và xóa các đối tượng trò chơi khỏi danh sách, nếu cần. Tôi nghĩ rằng có thể tạo một hàng các sự kiện cần được phát, trong trường hợp đó tôi chỉ cần thêm "EventManager.Update ()" vào vòng lặp trò chơi chính và có Update()
phương thức phát các sự kiện xảy ra ở cuối của từng khung. Cuối cùng, mỗi đối tượng sẽ có một HandleEvent(Event e)
phương thức, sau đó họ có thể phân tích cú pháp và trả lời một cách thích hợp.
Điều này nghe có vẻ là hướng thích hợp để thực hiện một hệ thống như vậy, hay tôi đang lạc lối và / hoặc thiếu một cái gì đó khá rõ ràng?