2012-09-26 33 views
0

我想做一個月亮圍繞一個星球旋轉,或類似的東西。那麼是否有什麼我可以調用physics.setGravity(0,0)改變引力引向的位置,特別是將其指定爲物理體?如果不是,只需一個特定的x-y座標即可。電暈源的重力是身體

local moon = display.newImage ("moon.png") 
physics.addBody(moon, {bounce=0, density=1.0}) 
local earth = display.newImage ("earth.png") 
physics.addBody(earth, {bounce=0, density=1.0}) 

感謝

回答

0

而是與setGravity選項打轉轉,我想你應該只需旋轉使用像這樣的圖片:

local physics = require("physics") 
physics.start() 
physics.setGravity(0, 0) 
display.setStatusBar(display.HiddenStatusBar) 

local background = display.newImage("space.png", true) 
background.x = display.contentWidth/2 
background.y = display.contentHeight/2 

local earth = display.newImage("earth.png") 
earth.x = 100; earth.y = 200 
earth.xScale = 0.7 
earth.yScale = 0.7 
physics.addBody(earth, {radius=40 }) 
earth.bodyType = "static" 

local moon = display.newImage("moon.png", 40, 40) 
moon.x = earth.x + 80 
moon.y = earth.y 
moon.xScale = 0.3 
moon.yScale = 0.3 
moon.rotation = 100 
physics.addBody(moon, {radius=10 }) 
moon.bodyType = "dynamic" 

myJoint = physics.newJoint("pivot", moon, earth, earth.x, earth.y) 

local orbit = function(event)  
     moon.rotation = moon.rotation + 1.5 
end 

請注意,我不是真的擺弄setGravity,但是旋轉的速度在orbit函數中定義。

上面的代碼假定你只有圖像文件來表示你的行星體。如果是這樣,你將不得不使用上面的常量(earth.xearth.y,縮放值等),以使整個系統LOOK適合您選擇的圖像。

祝你好運!

1

沒有 - 你可以改變重力,但它會拉/只在你把它設置爲,從來沒有任何一點的方向推。當月球/其他傳感器和傳感器之間的碰撞事件開始時,您可能會在地球周圍使用傳感器(不可見),並使用力量來吸引物體。