发生碰撞时停止计数

时间:2017-10-31 15:43:45

标签: java android libgdx

当一个圆圈与另一个圆圈重叠时,我正在开发一个游戏,分数必须加一个。

但是会发生什么呢,每次增加32次,显然我知道它每次都会增加碰撞,但我怎么能阻止它,每次碰撞只计算一次。

请帮助我的代码。



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




2 个答案:

答案 0 :(得分:1)

听起来你必须(至少)添加一个标志来跟踪交叉点已经发生/正在发生的事实,并且只有当escore++从false变为true时才会运行{specified_destination}/{flavor_name}/release folder。如果您想要跟踪未来的碰撞,您还希望将相交标志设置为不再相交时为假。

答案 1 :(得分:0)

以下是关于如何使用与碰撞检测相结合的标志的一种方法

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 ;
}

由您自行决定是否需要更多标志或条件来检查并根据您的需要进行此项工作