gpt4 book ai didi

C++ 游戏 AI 仅适用于 main

转载 作者:行者123 更新时间:2023-11-30 02:53:32 26 4
gpt4 key购买 nike

如果我在子类中使用 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 中,那么它就可以正常工作。有什么建议吗?

最佳答案

这是因为您正在重新初始化类 Player 的实例。相反,将其作为参数传递:

void Enemy::enemy_logic(Player myPlayer){
if(myPlayer.x > SCREEN_WIDTH / 2){
enemy_move();
}
}

这样函数会使用您的实例,而不是不同范围内的新实例。

关于C++ 游戏 AI 仅适用于 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com