1

ドラッグ可能なオブジェクトに問題があります。オブジェクトを別のオブジェクトにすばやくドラッグすると、オブジェクトが別のオブジェクトの中にくっつきます。それから私がそれを放すと、それは撃ちます。

これが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    
4

1 に答える 1

1

あなたの摩擦は非常に非常に高いので、それを大幅に減らすことをお勧めします。(これについては、Corona SDKドキュメントのbodyプロパティを読んでも問題ないかもしれません。ここでの投稿で説明するよりも、はるかに詳細な情報があります。)

あなたの体が動けなくなっている場合、それは摩擦に関係している可能性がありますが、実際に重なっている場合は、睡眠が原因であると思われます。問題の原因となっているボディにobj.isSleepingAllowed=falseを設定してテストすることができます。これにより、大幅な改善が見られる可能性があります。

于 2012-07-12T14:30:03.083 に答える