2013-04-17 55 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