-3

我正在创建一个非常简单的基于组件的游戏引擎。我有一个实体类,它存储要迭代的组件列表。

实体类还存储名称、位置、缩放等信息。我需要每个组件存储对拥有它的实体实例的引用。我最初尝试使用“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'
4

1 回答 1

1
rotation = ownerEntity->GetRotation;

应该:

rotation = ownerEntity->GetRotation();

调用函数。

于 2012-07-11T13:55:55.563 回答