我有一个 if 函数,每次 2 个对象相互重叠时执行,结果是 HP 应该只减少 1,但是只要它们重叠,HP 的值就会不断减少,所以它会从 3 直接变为0。
int HP = 3;
void collision ()
{
for(int i = 0; i < balls.length; i++)
{
if (dist(balls[i].bx,balls[i].by,X,Y)< 15)
{
HP-=1;
}
}
}
我有一个 if 函数,每次 2 个对象相互重叠时执行,结果是 HP 应该只减少 1,但是只要它们重叠,HP 的值就会不断减少,所以它会从 3 直接变为0。
int HP = 3;
void collision ()
{
for(int i = 0; i < balls.length; i++)
{
if (dist(balls[i].bx,balls[i].by,X,Y)< 15)
{
HP-=1;
}
}
}
int HP = 3;
void collision ()
{
bool check = false;
for(int i = 0; i < balls.length; i++)
{
if ((dist(balls[i].bx,balls[i].by,X,Y)< 15) && check == false)
{
HP-=1;
check = true;
}
}
}
选择:
int HP = 3;
void collision ()
{
for(int i = 0; i < balls.length; i++)
{
if ((dist(balls[i].bx,balls[i].by,X,Y)< 15))
{
HP-=1;
break;
}
}
}
选择
每次循环只有一次:
int HP = 3;
void collision () {
int temp = 0;
for(int i = 0; i < balls.length; i++) {
if ((dist(balls[i].bx,balls[i].by,X,Y)< 15)) {
temp += 1;
}
}
if (temp > 0) {
HP = HP - 1;
}
}