根据paddle.x运动计算ball.x.

时间:2013-06-30 23:11:38

标签: math lua

我正在制作一个简单的突破游戏,我有点陷入“胶水”效应 - 球击中桨,然后粘在它落在桨上的位置。我的问题是根据paddle.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

1 个答案:

答案 0 :(得分:2)

这里要做的正常事情是弄清楚你的球拍的位置是更改,然后按照这个数量修改球拍和球。但是你的代码似乎使用了更全面的方法。

在你的情况下最容易做的事情可能是计算球被胶合的相对位置。在更新paddle.x之前执行

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

然后,如果你被胶合,你只需在换挡位置改变后再次使用差值:

ball.x = paddle.x + ballDeltaX