非常に単純なコンポーネント ベースのゲーム エンジンを作成中です。反復するコンポーネントのリストを格納するエンティティ クラスがあります。
エンティティ クラスには、名前、位置、スケールなどの情報も格納されます。必要なのは、各コンポーネントがそれを所有するエンティティ インスタンスへの参照を格納することです。私はもともと「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'