サブクラスで AI を実行すると、問題が発生します。
これは、移動、ロジック、および表示機能のためにプレーヤーと敵のクラスにアクセスするメイン ループです。
//Logic
myPlayer.player_move();
myEnemy.enemy_logic();
//Rendering
myPlayer.player_show();
myEnemy.enemy_show();
そこで、Player クラスのプレイヤーを動かす関数にアクセスしてから、Enemy クラスのロジック (AI) 関数にアクセスします。
void Enemy::enemy_move(){
eX -= 2;
}
void Enemy::enemy_logic(){
Player myPlayer;
if(myPlayer.x > SCREEN_WIDTH / 2){
enemy_move();
}
}
したがって、Players x の値が画面の半分よりも大きい場合、敵が左に移動し始めます。
プログラムをコンパイルすることはできますが、プレーヤーを画面の中間点を超えて動かすと、敵は何もしません。この if ステートメントを main.cpp に入れると、正常に動作します。何かアドバイス?