gpt4 book ai didi

c++阻止敌人 Sprite 相互移动

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:43 25 4
gpt4 key购买 nike

我正在制作一款 2d 游戏,我正试图阻止敌方 Sprite 相互移动。我已经实现了以下方法,该方法应该检查敌人是否没有重叠,然后将其中一个移回他们来的方向。然而,这种方法似乎使我的游戏崩溃,因为只渲染了一个敌人。

这是我的检查方法:

size = enemys.size();
for (int i = 0; i<size; i++){
double x = enemys[i].getEnemyX();
double y = enemys[i].getEnemyY();
for (int s = 1; s<size; s++){
double enemyX = enemys[s].getEnemyX();
double enemyY = enemys[s].getEnemyY();
if (x >= enemyX-5.0 && x <= enemyX+5.0 && y >= enemyY-5.0 && y <= enemyY + 5.0){
double xDir = x - enemyX;
double yDir = y - enemyY;
double hyp = sqrt(xDir*xDir + yDir*yDir);
xDir /= hyp;
yDir /= hyp;
x -= xDir * 5;
y -= yDir * 5;
enemys[s].setEnemyCoord(x,y);
}
}
}*

最佳答案

您的代码最终将检查每个敌人与自身的关系。让你的内循环从 s=i+1

开始

关于c++阻止敌人 Sprite 相互移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23325839/

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