发生冲突时停止计数

3npbholx  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(370)

我正在开发一个游戏,当一个圈与另一个圈重叠时,分数必须加一。
但是每次增加32次,很明显我知道每次碰撞都会增加,但是我怎么能阻止它,每次碰撞只计算一次呢。
请帮忙这是我的密码。

if (Intersector.overlaps(playercircle, ey1circle[i]) || Intersector.overlaps(playercircle, ey2circle[i]) || Intersector.overlaps(playercircle, ey3circle[i]) || Intersector.overlaps(playercircle, ey4circle[i])) {
    escore++;
}
atmip9wb

atmip9wb1#

下面是一种如何结合使用标志和冲突检测的方法

boolean eycircle_flag ;
boolean collison ;

collison = Intersector.overlaps(playercircle, ey1circle[i]) || Intersector.overlaps(playercircle, ey2circle[i]) || Intersector.overlaps(playercircle, ey3circle[i]) || Intersector.overlaps(playercircle, ey4circle[i]) ;

if(!eycircle_flag && collison)
{
  eycircle_flag = true ;
  escore++ ;
}
else if(eycircle_flag && !collision)
{
  eycircle_flag = false ;
}

由您决定是否需要更多的标志或条件来检查并使其满足您的需要

yeotifhr

yeotifhr2#

听起来你必须(至少)添加一个标志来跟踪交叉点已经发生/正在发生的事实,并且只运行 escore++ 当这从假变为真。如果要跟踪将来的碰撞,还需要在它们不再相交时将相交标志设置回false。

相关问题