我有一个奇怪的问题。我已经开始在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