Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在另一个对象的同一点上生成物理对象,并移动生成的对象而不与另一个对象发生碰撞_Android_Iphone_Lua_Coronasdk - Fatal编程技术网

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的人运行你的片段(如果他们愿意的话)来测试你所描述的内容。检查此问题是否有其他方法来解决此问题,因为此解决方案不适合我的游戏情况。实际上,两个对象都是从同一点生成的,如果我移动一个对象,它会与另一个对象发生碰撞,我不想从对象中删除物理或将其更改为运动学。。。感谢您的帮助,您可以查看碰撞过滤器。有几个论坛帖子和社区创建的教程介绍如何使用它们。