Android 在另一个对象的同一点上生成物理对象,并移动生成的对象而不与另一个对象发生碰撞
我想在同一点上生成两个物理对象,然后通过施加力移动一个物理对象,但当一个对象移动时,它会与另一个物理对象碰撞。我不能让另一个物体成为非物理物体,因为这些物体会进一步相互碰撞,但一开始它们不能碰撞。。。请提出任何意见。。谢谢Android 在另一个对象的同一点上生成物理对象,并移动生成的对象而不与另一个对象发生碰撞,android,iphone,lua,coronasdk,Android,Iphone,Lua,Coronasdk,我想在同一点上生成两个物理对象,然后通过施加力移动一个物理对象,但当一个对象移动时,它会与另一个物理对象碰撞。我不能让另一个物体成为非物理物体,因为这些物体会进一步相互碰撞,但一开始它们不能碰撞。。。请提出任何意见。。谢谢 local obj2 local physicsbody1= { density=0.1, friction=0, bounce=0 } local physicsbody2= {density=10.0, friction=0, bounce=0.1, radius=25
local obj2
local physicsbody1= { density=0.1, friction=0, bounce=0 }
local physicsbody2= {density=10.0, friction=0, bounce=0.1, radius=25 }
local function createobj2(_xpos,y_pos,_id)
obj2=display.newImage("obj2.png")
obj2.x=_xpos
obj2.y=_ypos
physics.addBody(obj2,physicsbody1)
end
local physicsObjStatic=display.newImage("img1.png")
physicsObjStatic.x=450
physicsObjStatic.y=200
physics.addBody(physicsObjStatic,physicsbody2)
local function Shot( event )
local t = event.target
local phase = event.phase
if "began" == phase then
display.getCurrentStage():setFocus( t )
t.isFocus = true
t:setLinearVelocity( 0, 0 )
t.angularVelocity = 0
target.x = t.x
target.y = t.y
startRotation = function()
target.rotation = target.rotation + 4
end
Runtime:addEventListener( "enterFrame", startRotation )
local showTarget = transition.to( target, { alpha=0.4, xScale=0.4, yScale=0.4, time=200 } )
myLine = nil
elseif t.isFocus then
if "moved" == phase then
if ( myLine ) then
myLine.parent:remove( myLine )
end
myLine = display.newLine( t.x,t.y, event.x,event.y )
myLine:setColor( 255, 255, 255, 50 )
myLine.width = 8
elseif "ended" == phase or "cancelled" == phase then
display.getCurrentStage():setFocus( nil )
t.isFocus = false
local stopRotation = function()
Runtime:removeEventListener( "enterFrame", startRotation )
end
local hideTarget = transition.to( target, { alpha=0, xScale=1.0, yScale=1.0, time=200, onComplete=stopRotation } )
if ( myLine ) then
myLine.parent:remove( myLine )
end
createobj2(t.x,t.y)
obj2:applyForce( (t.x - event.x), (t.y - event.y), t.x, t.y )
end
end
return true
end
physicsObjStatic:addEventListener( "touch", Shot )
拖动对象时,应将其临时更改为运动学对象,而不是动力学对象。运动学对象不会产生碰撞。“请给我解决方案”不太可能起作用。向我们展示您尝试了什么(但只包括足够让我们运行代码的相关片段),并描述哪些不起作用。这也允许那些拥有Corona的人运行你的片段(如果他们愿意的话)来测试你所描述的内容。检查此问题是否有其他方法来解决此问题,因为此解决方案不适合我的游戏情况。实际上,两个对象都是从同一点生成的,如果我移动一个对象,它会与另一个对象发生碰撞,我不想从对象中删除物理或将其更改为运动学。。。感谢您的帮助,您可以查看碰撞过滤器。有几个论坛帖子和社区创建的教程介绍如何使用它们。