0
我正在使用SDL2圖形庫在C++中編寫遊戲。我正在使用繼承類來定義我的遊戲中的實體。遊戲實體更新方法
Entity
-> Player
-> BadGuy
-> Bullet
在這個例子中,Player,BadGuy和Bullet都是實體的子類。我這樣做是爲了讓我可以在我的遊戲中存儲一個實體列表,並遍歷每個實體來更新和渲染它們。因此,每個實體將具有唯一的update()
來定義其行爲。
我碰到的問題是,在更新方法中,不同的實體不能'看見'彼此。如果Player
的一個實例想要檢查一個Bullet
的實例是否與它發生衝突,那麼我必須將所有實體的列表作爲參數傳遞給update()
以供它檢查。在你考慮更新方法可能需要引用的所有內容之前,這似乎並不那麼糟糕。遊戲地圖,任意遊戲狀態信息和其他東西都必須作爲參數傳遞給update()
才能使用。
有沒有簡單的解決方案呢?或者使用更好,但仍然類似的編程模式?任何意見,將不勝感激。