2013-04-17 51 views
2

我一直在使用Corona SDK幾個星期左右,但還沒有成功地創建一個可拖動的對象和動態對象之間的真正衝突。Corona SDK:真正的拖動碰撞

我的意思:像賈斯汀·史密斯的現實夏季運動模擬器,或者在手指平衡 - >http://www.youtube.com/watch?v=8_iGFsBUsV8

當拖動的對象拖動到上面,並立即停止,在對象上拖動對象的頂部有仍然有點像上面的力量,就像自然界一樣。 但是在例如Corona SDK的拖動物理示例中,沒有這樣的強制,當它應該跳轉一點時,該對象只是粘到拖動的對象上。 我希望你明白我想解釋的是什麼,英語不是我的母語。

在此先感謝!

+0

你的意思是說,你的可拖動對象和動態對象成爲一起還是我誤解? 你是否學習物理對象類型? (運動學,動態,靜態) –

+0

這是一個例子,我試圖使用運動學和動態物體,我認爲有可能把小方塊扔到空中,但大方塊不是。 'local physics = require「physics」 physics.start() physics。 setScale(90) local rect = display.newRect(250,450,50,50) local rect2 = display.newRect(175,650,200,200) physics.addBody(rect,「dynamic」) physics.addBody (RECT2, 「運動」) 函數拖動(事件) \t如果event.phase == 「移動」,則\t \t \t rect2.x = event.x - event.xStart + 275 \t \t rect2.y = event.y - event.yStart + 750 \t \t結束 結束 運行時間:ad dEventListener(「觸摸」,拖動)' – user2281843

回答

0

一旦讓物理子系統管理一個對象,就不能「手動」更改它的座標。那物理學至少應該是那麼高的。

但是,您可以通過applyForce和setLinearVelocity對物體施加力或設置其速度。

如果你想拖動物理對象,你可以使用所謂的「觸摸關節」。如果你想要更多的控制嘗試像這樣:

function drag(e) 
    if e.phase == 'moved' then 
    e.target:setVelocity((e.x-e.target.x)*c, (e.y-e.target.y)*c) 
    end 
end