【发布时间】:2017-07-11 23:56:01
【问题描述】:
我正在使用 SDL2 图形库用 C++ 编写游戏。我正在使用具有继承的类来定义我的游戏中的实体。
Entity
-> Player
-> BadGuy
-> Bullet
在本例中,Player、BadGuy 和 Bullet 都是 Entity 的子类。我这样做是为了在我的游戏中存储一个实体列表,并遍历每个实体以更新和渲染它们。因此,每个实体都会有一个唯一的update() 来定义它们的行为。
我遇到的问题是,在更新方法中,不同的实体不能“看到”彼此。如果Player 的实例想要检查Bullet 的实例是否与它发生冲突,我必须将所有实体的列表作为参数传递给update() 以供它检查。在您考虑更新方法可能需要引用的所有内容之前,这似乎并没有那么糟糕。游戏地图、任意游戏状态信息和其他内容都必须作为参数传递给update() 才能使用。
有没有简单的解决方案?还是使用更好但仍然相似的编程模式?任何建议将不胜感激。
【问题讨论】:
标签: c++ class game-engine