我正在制作一个简单的突破游戏,我有点陷入“胶水”效应 -
球击中桨,然后粘在它落在桨上的位置。我的问题是根据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
答案 0 :(得分:2)
这里要做的正常事情是弄清楚你的球拍的位置是更改,然后按照这个数量修改球拍和球。但是你的代码似乎使用了更全面的方法。
在你的情况下最容易做的事情可能是计算球被胶合的相对位置。在更新paddle.x
之前执行:
ballDeltaX = ball.x - paddle.x
paddle.x = event.x - moveX
然后,如果你被胶合,你只需在换挡位置改变后再次使用差值:
ball.x = paddle.x + ballDeltaX