当我尝试使用以下行访问实体的组件时,会出现我面临的 FPS 问题:
SpriteComponent* sprite = (SpriteComponent*) entity_pointer->getComponent("Sprite");
PositionComponent* position = (PositionComponent*) entity_pointer->getComponent("Position");
getComponent(component name) 返回一个组件指针,该指针可以转换为派生组件类。
我已经注释掉了我的代码的点点滴滴,并且我已经确定像这样的行会使我的 FPS 下降一个档次,尤其是当我创建了许多实体时。
简要说明我如何设置实体组件系统不佳:我有一组控制器指针,它们包含包含组件指针的实体指针。每个控制器对实体执行特定操作,因为它具有正确的组件,例如物理控制器使用物理组件给定的速度推进实体的位置。不同的控制器类都是从Controller类派生的,不同的组件是从Component类派生的。
现在我是 C++ 的新手,所以我希望我设置正确。这两条线会如何让我的游戏速度减慢这么多?有什么东西冲着你跳出来吗?