2015-12-22 69 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

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