クラスエンティティがあるとします。
そして、エンティティから派生した n 個のクラスがあります
。
class Snake : public Entity{...};
class Mouse : public Entity{...};
これで、エンティティであるクラス プレーヤーができました。
どのタイプのエンティティからも継承するクラス プレーヤーを作成できますか? 例:
class Player : public Entity -->(but instead of entity be any type of entity)
これはできますか?
これはテンプレートを使用して達成されますか?
テンプレートを cpp ファイルで明示的に指定できることを読みました。
template class Entity<Snake>;
私は次のことを達成しようとしています
私のプレーヤークラスには、move 内に moveCamera 関数があります。これで、プレーヤーが移動したときにのみカメラが移動します..AI スネークが移動した場合、カメラは移動してはなりません。
これは、仮想エンティティ クラスのレンダリング関数です。
void Entity::Render(float interpolation)
{
if(currentAnimation != 0){
float x = this->currLocation.x - (this->currentVelocity.x * (1.0f - interpolation)) - camera->getLocation(L_FACTOR_CURRENT).x;
float y = this->currLocation.y - (this->currentVelocity.y * (1.0f - interpolation)) - camera->getLocation(L_FACTOR_CURRENT).y;
currentAnimation->Render(x,y);
}
}
これは私の gameUpdate 関数であり、基本的にエンティティをそれぞれのワールド座標に移動します
void Entity::GameUpdate(float gameUpdateDelta)
{
this->Move();
}
したがって、私のプレーヤーの move 関数では、カメラの move 関数を呼び出してから、基本クラスの move 関数を呼び出します...これで、基本クラスの move 関数の拡張クラスを呼び出すことができます..
私の Move 関数は仮想であり、したがってヘビですマウスは別の方法で動かすことができます..