Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 根据桨.x运动计算球.x_Math_Lua - Fatal编程技术网

Math 根据桨.x运动计算球.x

Math 根据桨.x运动计算球.x,math,lua,Math,Lua,我正在做一个简单的突破游戏,我有点被“胶水”的效果卡住了- 球撞击桨,然后停留在它落在桨上的位置。我的问题是根据桨.x的运动计算ball.x,使球停留在它落在桨上的相同位置 这是我的密码: function dragPaddle(event) if event.phase == "began" then moveX = event.x - paddle.x elseif event.phase == "moved

我正在做一个简单的突破游戏,我有点被“胶水”的效果卡住了- 球撞击桨,然后停留在它落在桨上的位置。我的问题是根据桨.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

在这里通常要做的事情是计算出你的桨的位置改变了多少,然后根据这个量修改桨和球。但您的代码似乎使用了更为全局的方法

在您的情况下,最简单的方法可能是计算球粘在一起的相对位置。在更新
paile.x
之前执行此操作:

ballDeltaX = ball.x - paddle.x
paddle.x = event.x - moveX
然后,如果你粘在一起,你只需在桨位置改变后再次使用三角板:

ball.x = paddle.x + ballDeltaX

你为什么不做
ball.x=桨.x
?移动桨后,球将始终位于中心