加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua – 在corona sdk中拖动物理对象

发布时间:2020-12-14 21:46:27 所属栏目:大数据 来源:网络整理
导读:我试图在我的场景中拖动一个重力= 0,0的动态物体,我有一个体型动态的正方形和一个静止的体型的图像,但是当在图像上拖动正方形时这有一点力量但是可以超过图像并像图像一样传递到另一侧: 这是我拖动方块的代码: local function dragBody( event ) local bod
我试图在我的场景中拖动一个重力= 0,0的动态物体,我有一个体型动态的正方形和一个静止的体型的图像,但是当在图像上拖动正方形时这有一点力量但是可以超过图像并像图像一样传递到另一侧:

这是我拖动方块的代码:

local function dragBody( event )
                  local body = event.target
        local phase = event.phase
        local stage = display.getCurrentStage()

        if "began" == phase then
                stage:setFocus( body,event.id )
                body.isFocus = true
                body.tempJoint = physics.newJoint( "touch",body,event.x,event.y )

        elseif body.isFocus then
                if "moved" == phase then
                        body.tempJoint:setTarget( event.x,event.y )

                elseif "ended" == phase or "cancelled" == phase then
                        stage:setFocus( body,nil )
                        body.isFocus = false
                        body.tempJoint:removeSelf()

                end
        end
        return true
end

这是创建对象的代码:

function scene:createScene( event )
    local group = self.view
    my_square = display.newImage("square.png")
    my_square.x = 60
    my_square.y = 60
    physics.addBody(my_square,"dynamic" )
    group:insert(my_square)

    floor = display.newImage("piso.png")
    floor.x = 160
    floor.y = 240
    physics.addBody(floor,"static" )
    group:insert(floor)   
end

感谢帮助.

解决方法

当你手动移动一个物体时,你这样做是不受物理控制的,基本上你可以强迫物体移过静止物体.

你可以做的是设置碰撞检测,当你移动方形时会给你一个事件,告诉你什么时候停止移动.当然,如果你不遵守移动代码,你可以继续移动你的对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读