-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 に答える