2014-04-28 38 views
0

我想在一个最终的项目在javascript中做乒乓游戏,但撞击检测不适用于我的左桨。右桨将工作,但左侧不会。如果我调整了大于小于数值的值,球就会癫痫发作。试图让碰撞检测工作pong。左桨不会工作

我真的不知道如何解决这个问题。请帮忙!

//hit detection right paddle 
if((ballinfo.x + ballinfo.size) <=(boxtwo.x)){ 
       if (ballinfo.y > boxtwo.y){ 
        if((ballinfo.y + ballinfo.size) <= (boxtwo.y + boxtwo.height)){ 
         ballinfo.velocity.x *= -1; 
         console.log("collision"); 
        } 
       } 
      } 

//hit detection left paddle 
if((ballinfo.x + ballinfo.size) <=(box.x)){ 
       if (ballinfo.y < box.y){ 
        if((ballinfo.y + ballinfo.size) <= (box.y + box.height)){ 
         ballinfo.velocity.x *= -1; 
         console.log("collisionleft"); 
        } 
       } 
      } 

      ballinfo.x += ballinfo.velocity.x; 
      ballinfo.y += ballinfo.velocity.y; 

+0

如果不知道这些数值应该表示什么,有点难以分辨。有一点似乎很奇怪,那两个部分之间唯一真正的区别是ballinfo.y和box.y.之间的比较。我希望差异涉及x值。 –

回答

1

它看起来像错误的比较操作是你的左右之间反转。尝试更改左侧部分中的前两个比较运算符,看看是否有帮助。

if((ballinfo.x + ballinfo.size) >=(box.x)){ 
      if (ballinfo.y > box.y){ 

我假设上y中的检查是对桨,所以代码应该有左和右桨(替换对象名称,当然)之间是相同的。