在Corona SDK中拖动故障?

在Corona SDK中拖动故障?,sdk,lua,coronasdk,Sdk,Lua,Coronasdk,我对可拖动的对象有问题。当我快速拖动一个对象穿过另一个对象时,它会粘在另一个对象内。然后当我释放它时,它就会飞走 这是我的代码,我使用gameUI.lua编写。谁能帮帮我吗 display.setStatusBar(display.HiddenStatusBar) local physics = require("physics") physics.start() physics.setDrawMode("normal") physics.setGravity(0,5) local game

我对可拖动的对象有问题。当我快速拖动一个对象穿过另一个对象时,它会粘在另一个对象内。然后当我释放它时,它就会飞走

这是我的代码,我使用gameUI.lua编写。谁能帮帮我吗

display.setStatusBar(display.HiddenStatusBar)

local physics = require("physics")
physics.start()
physics.setDrawMode("normal")
physics.setGravity(0,5)

local gameUI = require("gameUI")

local floor = display.newImage("floor.jpg")
physics.addBody(floor, "static", {friction = 999, bounce = 0})
floor.y = 900

local box = display.newImage("box.png")
physics.addBody(box, {friction = 99, bounce = 0})
box.x = 100

function localDrag( event )
    gameUI.dragBody( event, { maxForce=100000, frequency=1000, dampingRatio=1,                              center=true })
end

function box:touch( event )
if event.phase == "began" then

    self.markX = self.x
    self.markY = self.y

elseif event.phase == "moved" then

    local x = (event.x - event.xStart) + self.markX
    local y = (event.y - event.yStart) + self.markY

    self.x, self.y = x, y

    if (self.x > 595) then
     self.x = 595
    end
    if (self.x < 46 ) then
    self.x = 46
end
    if (self.y > 795) then
    self.y = 795
    end
end

return true
end

box:addEventListener( "touch", localDrag)

local triangle = display.newImage("triangle.png")
triangle.x = 200
triangleShape = {   -45, 45  ,  -45, -45  ,  45, 45  }
physics.addBody(triangle, {friction = 99, bounce = 0, shape=triangleShape})
function localDrag( event )
gameUI.dragBody( event, { maxForce=1000000, frequency=1000, dampingRatio=1,                 center=true })
end

function triangle:touch( event )
if event.phase == "began" then

    self.markX = self.x
    self.markY = self.y

elseif event.phase == "moved" then

    local x = (event.x - event.xStart) + self.markX
    local y = (event.y - event.yStart) + self.markY

    self.x, self.y = x, y

    if (self.x > 595) then
     self.x = 595
    end
    if (self.x < 46 ) then
    self.x = 46
end
    if (self.y > 795) then
    self.y = 795
end
end

return true
end
triangle:addEventListener( "touch", localDrag)

local wall = display.newImage("wall.jpg")
physics.addBody(wall, "static", {friction = 0, bounce = 0})
wall.x = 665

local wall1 = display.newImage("wall.jpg")
physics.addBody(wall1, "static", {friction = 0, bounce = 0})
wall1.x = -25    
display.setStatusBar(display.HiddenStatusBar)
本地物理=要求(“物理”)
物理开始
物理。设置绘图模式(“正常”)
物理学.地心引力(0,5)
本地gameUI=需要(“gameUI”)
本地楼层=display.newImage(“floor.jpg”)
addBody(地板,“静态”{摩擦=999,反弹=0})
楼层y=900
本地框=display.newImage(“box.png”)
addBody(框,{摩擦力=99,反弹=0})
框x=100
函数localDrag(事件)
dragBody(事件,{maxForce=100000,频率=1000,阻尼=1,中心=true})
结束
功能框:触摸(事件)
如果event.phase==“开始”,则
self.markX=self.x
self.markY=self.y
elseif event.phase==“移动”然后
本地x=(event.x-event.xStart)+self.markX
本地y=(event.y-event.yStart)+self.markY
self.x,self.y=x,y
如果(self.x>595),则
self.x=595
结束
如果(self.x<46),则
self.x=46
结束
如果(self.y>795),则
self.y=795
结束
结束
返回真值
结束
框:addEventListener(“触摸”,本地拖动)
局部三角形=display.newImage(“triangle.png”)
三角形x=200
三角形形状={45,45,-45,-45,45,45}
addBody(三角形,{friction=99,bounce=0,shape=triangleShape})
函数localDrag(事件)
dragBody(事件,{maxForce=1000000,频率=1000,阻尼=1,中心=true})
结束
功能三角:触摸(事件)
如果event.phase==“开始”,则
self.markX=self.x
self.markY=self.y
elseif event.phase==“移动”然后
本地x=(event.x-event.xStart)+self.markX
本地y=(event.y-event.yStart)+self.markY
self.x,self.y=x,y
如果(self.x>595),则
self.x=595
结束
如果(self.x<46),则
self.x=46
结束
如果(self.y>795),则
self.y=795
结束
结束
返回真值
结束
三角形:addEventListener(“触摸”,局部拖动)
本地墙=display.newImage(“wall.jpg”)
addBody(墙,“静态”{摩擦=0,反弹=0})
墙x=665
本地墙1=display.newImage(“wall.jpg”)
addBody(wall1,“static”{摩擦=0,反弹=0})
墙1.x=-25

你的摩擦力非常非常大,我建议你减少很多。(阅读Corona SDK文档中关于身体属性的内容可能不会有什么坏处,其中的细节远比我在这里的一篇文章中所提到的要详细得多。)


对于你的身体被卡住,这可能与摩擦有关,尽管如果它们实际上重叠,我会怀疑这是因为睡觉。您可以将导致问题的车身上的obj.isSleepingAllowed=false设置为,并进行测试,我相信您可能会看到显著的改善。

您的摩擦力非常非常大,我建议您将其降低很多。(阅读Corona SDK文档中关于身体属性的内容可能不会有什么坏处,其中的细节远比我在这里的一篇文章中所提到的要详细得多。)


对于你的身体被卡住,这可能与摩擦有关,尽管如果它们实际上重叠,我会怀疑这是因为睡觉。您可以将导致问题的车身上的obj.isSleepingAllowed=false设置为,并进行测试,我相信您可能会看到显著的改进。

我尝试了obj.isSleepingAllowed=false和obj.isBullet=true,将摩擦力更改为1,但仍然重叠,但它不再射出,我尝试了obj.isSleepingAllowed=false和obj.isBullet=true,将摩擦力改为1,它仍然重叠,但它不再射出