我正在使用SDL2图形库编写C ++游戏。我正在使用带继承的类来定义游戏中的实体。
Entity
-> Player
-> BadGuy
-> Bullet
在此示例中,Player,BadGuy和Bullet都是Entity的子类。我这样做,以便我可以在我的游戏中存储实体列表,并迭代每个实体来更新和渲染它们。因此,每个实体都有一个唯一的update()
来定义他们的行为。
我遇到的问题是,在更新方法中,不同的实体不能彼此“看到”。如果Player
的实例想要检查Bullet
的实例是否与它发生冲突,我将必须将所有实体的列表作为参数传递给update()
以供其检查。在您考虑更新方法可能需要引用的所有内容之前,这似乎并不那么糟糕。游戏地图,任意游戏状态信息和其他内容都必须作为update()
使用的参数传递。
有一个简单的解决方案吗?还是使用更好但仍然相似的编程模式?任何建议将不胜感激。