![](/img/trans.png)
[英]C++ DirectX11 2d Game: Stopping enemy sprites moving over each other?
[英]c++ Stop Enemy Sprites Moving Over Each Other
我正在制作2D游戏,并且试图阻止敌方精灵相互移动。 我实现了以下方法,该方法应检查敌人是否重叠,然后将其中一个移回他们来的方向。 但是,这种方法似乎使我的游戏崩溃,因为只渲染了一个敌人。
这是我的检查方法:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.