gpt4 book ai didi

java - 如何知道不同数组列表中的两个元素是否发生碰撞?

转载 作者:行者123 更新时间:2023-12-02 10:03:23 24 4
gpt4 key购买 nike

现在,我们正在编写一款射击游戏,您将扮演一架飞机,其任务当然是射击敌人。我们有两种不同的类别,一种是子弹,另一种是敌人。我们在检查这两个元素是否相互碰撞时遇到了麻烦。

我们已经尝试比较这两个元素的 x 和 y 坐标,但这似乎不起作用。

void hit() {
for(int i = 0; i < Bullet.size(); i++) {
Bullet bullet = (Bullet) Bullet.get(i);
Enemy enemy = (Enemy) enemies.get(i);
if(bullet.x < enemy.x + enemy.l
&& enemy.x > enemy.x - enemy.l
&& enemy.y < bul.y) {
enemy.health -= 1;
println("Hit");
if(enemy.health <= 0) {
enemy = null;
// enemies.remove(i);
}
}
}
}

bul 是我们的子弹数组列表,enm 是敌人数组列表

最佳答案

问题是在检查碰撞时你只有一个for-loop。所以你实际上是在检查子弹 #1 是否击中了敌人 #1。您将需要两个 for-loop 来检查每个子弹针对每个敌人的情况。

void hit() {

for(int i = 0; i < Bullet.size(); i++)
{
Bullet bul = (Bullet) Bullet.get(i);

for(int j=0; j<enemies.size(); j++){
Enemy enm = (Enemy)enemies.get(j);
if(bul.x < enm.x + enm.l && bul.x > enm.x - enm.l && enm.y<bul.y)
{
enm.health -= 1;
println("Hit");
if(enm.health <= 0)
{
enm = null;
// enemies.remove(i);
}
}
}
}
}

关于java - 如何知道不同数组列表中的两个元素是否发生碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55470933/

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