所以我在Corona做了一个像乒乓球的比赛,而我却陷入了如何让球拍跟踪球的过程中。我已经将球的x坐标定义为ball.x = ballx
和ballx = 160
,但是当我使用
local myListener = function( event )
upperpad.x = ballx
lowerpad.x = ballx
end
Runtime:addEventListener( "enterFrame", myListener )
将桨叶x值更新为球的x值,它保持不变。如何将ballx
表示为变化的值并让桨来反映球的x值?
答案 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)