如何将位置设置为变量(Corona SDK)
How To Set Position as a Variable (Corona SDK)
所以我在 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 值?
ballx 值保持不变,因为您可能没有更新它,而是直接更改 ball.x。事实上,这就是这样做的方法:你应该使用 ball.x 因为这是被改变的真实值,而不是 ballx。
但是,如果你仍然想使用参考值ball.x,你可以设置ballx = ball.x
和然后更新 ballx直接取值。
当您完成更新 ballx 值后,您也可以更新 ball.x 值,就像您所做的那样更新球拍。
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 值即可。你不需要球球。
local movePaddles = function(event)
upperpad.x = ball.x
lowerpad.x = ball.x
end
Runtime:addEventListener("enterFrame", movePaddles)
所以我在 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 值?
ballx 值保持不变,因为您可能没有更新它,而是直接更改 ball.x。事实上,这就是这样做的方法:你应该使用 ball.x 因为这是被改变的真实值,而不是 ballx。
但是,如果你仍然想使用参考值ball.x,你可以设置ballx = ball.x
和然后更新 ballx直接取值。
当您完成更新 ballx 值后,您也可以更新 ball.x 值,就像您所做的那样更新球拍。
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 值即可。你不需要球球。
local movePaddles = function(event)
upperpad.x = ball.x
lowerpad.x = ball.x
end
Runtime:addEventListener("enterFrame", movePaddles)