2015-12-22 57 views
0

因此,我在科罗娜制作了一个类似于pong的游戏,并且我被困在如何让电影棒追踪球。我已经定义了球的x坐标为ball.x = ballxballx = 160但是当我使用如何将位置设置为变量(电晕SDK)

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

Runtime:addEventListener("enterFrame", myListener) 

保持更新到球的x值桨x值,它保持不变。我怎样才能将ballx表示为一个变化的值,并让球拍反映球的x值?

+0

在函数myListener中添加ballx = ball.x将更改ballx。 – Albert

+1

你应该在你的其他问题上接受我的回答。对于这个问题,我想有时候你需要展示更多的信息(代码)。 –

回答

0

ballx值保持不变,因为你可能没有更新它,直接改变ball.x。事实上,这是做到这一点的方法:你应该使用ball.x,因为这是被改变的真实值,而不是ballx。

然而,如果你仍然想使用一个参考值ball.x,您可以直接设置ballx = ball.x然后更新ballx值。

当您完成更新ballx值时,您也可以更新ball.x值,以及像您一样更新paddles。

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) 
+0

如果我手动更新ball'x值,那么这段代码会很好用,但是它已经通过物理引擎自行移动了。基本上我在屏幕周围设置了4个边界,现在球刚刚反弹,我的目标是让球拍跟随球的运动,并让球从球拍反弹。有什么方法可以跟踪物理环境中的x位置吗? –

+0

当然,我编辑了我的答案。 – Ulydev

+0

非常感谢!正是我需要的! (: –