我有一個奇怪的問題。我已經開始在C++/SFML中實現簡單的遊戲引擎。 我實現了一個消息和消息隊列系統,以便將模塊解耦並避免任何令人困惑的依賴關係。我還實現了一個類Entity,它代表遊戲中的一個對象(包含它的位置,精靈,等等)。成員函數的不同實現C++
每個實體都有一個叫做「on_message」的函數,當指定的實體接收到消息時,它被消息隊列調用。 (例如:如果實體P1是來自P2的消息的目的地,則msg_queue將調用p1.on_message傳遞msg_type「say damage」給它做某事
我的問題,所有實體(來自類實體的對象)現在有相同的函數on_message的實現,但是這個函數應該不同於實體(因此當按下「say」空間時玩家的行爲與敵人不同)
我得到的一個想法是使用繼承,但是我認爲這是不正確的,如果遊戲有100個實體,我應該讓100類!
有什麼有效的想法可以解決這個問題嗎? Th預先安排
「我應該做100班!」?有什麼奇怪的呢?它不像編譯器變得很累......類可以模擬不同類型的「東西」,所以如果你有100個實體類型,將它們建模爲類是不荒謬的。 –
我認爲還有另一種方式可以這樣做,如果隨着遊戲組件的增長,類的數量會不斷增加? –
玩家與其他玩家有着明顯的區別,但其他玩家會如何區別?你可以用數據來模擬這些差異,而不是功能。 – Sopel