根据板子的移动,计算球的x位置。

我正在制作一个简单的打砖块游戏,但我在“粘合”效果上遇到了一点困难——球撞击了球拍,然后停留在着陆点的位置上。我的问题是计算ball.x,使它随着球拍运动而保持在着陆点上。以下是我的代码:

function dragPaddle(event)
        if event.phase == "began" then
            moveX = event.x - paddle.x
        elseif event.phase == "moved" then
            paddle.x = event.x - moveX

            if glueIsOn == "on" and ballOnGlue == "on" then
                ball.x = (paddle.x - ball.x)
            end
        end
点赞
用户1553090
用户1553090

在这里正常的做法是计算出您的球拍位置的变化量,然后通过这个量来修改球拍和球的位置。但是你的代码似乎使用更全局的方法。

在更新 paddle.x 之前,您在这种情况下最简单的方法可能是计算球粘在哪个相对位置。:

ballDeltaX = ball.x - paddle.x
paddle.x = event.x - moveX

然后,如果您粘在一起,只需在球拍位置更改后再次使用增量:

ball.x = paddle.x + ballDeltaX
2013-06-30 23:17:53