如何将位置设置为变量(Corona SDK)

时间:2015-12-22 05:28:35

标签: android lua corona

所以我在Corona做了一个像乒乓球的比赛,而我却陷入了如何让球拍跟踪球的过程中。我已经将球的x坐标定义为ball.x = ballxballx = 160,但是当我使用

local myListener = function( event )
   upperpad.x = ballx
   lowerpad.x = ballx
end

Runtime:addEventListener( "enterFrame", myListener )

将桨叶x值更新为球的x值,它保持不变。如何将ballx表示为变化的值并让桨来反映球的x值?

1 个答案:

答案 0 :(得分:1)

ballx值保持不变,因为您可能没有更新它,而是直接更改ball.x。实际上,这是实现它的方法:你应该使用ball.x,因为这是改变的真正价值,而不是ballx。

但是,如果你仍想使用ball.x的参考值,你可以设置ballx = ball.x然后直接更新 ballx 值。 / p>

当你完成更新ballx值后,你也可以更新ball.x值,并像你一样更新padd。

local updateBall = function()

    ballx = ballx + 20 --update the ballx value

end

Runtime:addEventListener("enterFrame", updateBall)

local myListener = function(event)

   ball.x = ballx --then update the ball itself with the ballx value

   upperpad.x = ballx --and make the paddles follow
   lowerpad.x = ballx

end

Runtime:addEventListener("enterFrame", myListener)

编辑:如果你想根据球(由物理引擎处理)手动设置桨的位置,只需使它们遵循原始的ball.x值即可。你需要ballx。

local movePaddles = function(event)

   upperpad.x = ball.x
   lowerpad.x = ball.x

end

Runtime:addEventListener("enterFrame", movePaddles)