我正在创建一个非常简单的基于组件的游戏引擎。我有一个实体类,它存储要迭代的组件列表。
实体类还存储名称、位置、缩放等信息。我需要每个组件存储对拥有它的实体实例的引用。我最初尝试使用“this”关键字,但它不起作用,因为您不能在作业中使用它。
void Entity::addComponent(Component *theComponent){
components.push_back(theComponent);
theComponent->ownerEntity = this;
}
组件如何存储指向其所有者的指针?
谢谢你的帮助!
编辑:组件类几乎没有任何内容,因为它打算被继承,但这是它的声明:
class Entity;
class Component
{
public:
Component();
virtual void Update();
Entity *ownerEntity;
protected:
private:
};
如果我尝试像这样访问所有者实体,则在制作组件时:
rotation = ownerEntity->GetRotation;
我收到此错误:
error: argument of type 'float (Entity::)()' does not match 'float'