我正在做一个简单的突破游戏,我有点被“胶水”效应所困扰--球击中球拍,然后停留在它落在球拍上的位置。我的问题是根据paddle.x的移动来计算ball.x,所以它停留在paddle上的相同位置。
下面是我的代码:
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发布于 2013-07-01 07:17:54
这里通常要做的事情是计算出你的球拍的位置有多大的变化,然后修改球拍和球拍的数量。但是您的代码似乎使用了一种更全球化的方法。
在你的情况下,最简单的事情可能是计算球粘在一起的相对位置。在更新paddle.x之前执行此操作
ballDeltaX = ball.x - paddle.x
paddle.x = event.x - moveX然后,如果你被粘住了,你只需在划桨位置改变后再次使用增量:
ball.x = paddle.x + ballDeltaXhttps://stackoverflow.com/questions/17395682
复制相似问题