如何解决一个关于计数器不平衡和重叠方法的算法?

时间:2016-10-27 19:48:19

标签: java libgdx counter

你好我正在尝试使用libgdx制作2D游戏。 总结一下,我有两个矩形,我正在检查碰撞。 我想增加计数器例如1,2,3,4,5,6 ...... 但如果不能正常工作,反而会增加不平衡。 因为柜台增加例如34,49,78 .... 两个矩形相交并且重叠继续,因此计数器增加不平衡。我想要在第一个十字路口不要增加柜台。 我想功能而不是重叠但没有结果 为此,我需要你的帮助。

顺便说一句,计数器是全局变量。第一个计数器的值为0.游戏有无限循环。像flappybird这样的游戏工作。但游戏玩家有三条生命。

代码在这里:

if(xRectangle.overlaps(yRectangle)) {
    counter++;
    if (counter == 1)
       bang.play();
    if (counter == 2)
       bang.play(); 
    if (counter == 3) {
       System.out.println("game finished!");
       bang.play();
    }
}

1 个答案:

答案 0 :(得分:0)

在游戏中,计数器值以不平衡的方式增加,因为libgdx检查的碰撞检测速率为1/60 fps。所以在每纳秒时,它会在碰撞过程中增加计数器。为避免这种情况,我建议您对代码进行一些小修改。

          int countController=0;
          if(xRectangle.overlaps(yRectangle)) {
          countController++;
          if(countController%60==0){
              counter++;
          if (counter == 1)
          bang.play();
          if (counter == 2)
          bang.play(); 
          if (counter == 3) {
          System.out.println("game finished!");
          bang.play();
          }
          }
          }

//请尝试此代码。一切顺利