0

我想为 Fixed Distance 移动 x 轴上的对象。说我有对象精灵,我已经放置在 Scene 中。我的要求是我想将 X 的对象移动到 Some -X 和 -X 到 X。

function scrollBackgroundImages(self, event)
    if self.x < -477 then
        self.x = 480
        else
        self.x = self.x - self.speed
    end
end

backgroundImage1 = display.newImage("goldfish-background-01.png", 768, 1024)
    backgroundImage1:setReferencePoint(display.BottomLeftReferencePoint)
    backgroundImage1.x = 0
    backgroundImage1.y = 320
    backgroundImage1.speed = 1
    screenGroup:insert(backgroundImage1)



carbSpritesheetData = { width=216, height=167, numFrames=3, sheetContentWidth=650, sheetContentHeight=167 }
        mycrabSheet = graphics.newImageSheet( "crab-sprite.png", carbSpritesheetData )
        crabSequenceData = {
        { 
            name = "normalRun", start=1, count=3, time=800}
        }
        crabMoving = display.newSprite( mycrabSheet, crabSequenceData )
        crabMoving:play()
        crabMoving:scale(0.3, 0.3)
        crabMoving.x =_W/2
        crabMoving.y = _H-55
        crabMoving.speed = 1
        physics.addBody(crabMoving, "static", {density = 0.1, bounce = 0.1, friction = 0.2, radius = 12})
        screenGroup:insert(crabMoving)


    crabMoving.enterFrame = scrollBackgroundImages
        Runtime:addEventListener("enterFrame",crabMoving )
4

2 回答 2

1
    -- create background
    local backgroundImage1 = display.newImage("goldfish-background-01.png", 768, 1024)
    backgroundImage1:setReferencePoint(display.BottomLeftReferencePoint)
    backgroundImage1.x = 0
    backgroundImage1.y = 320
    screenGroup:insert(backgroundImage1)

    -- create sprite
    carbSpritesheetData = { width=216, height=167, numFrames=3, sheetContentWidth=650, sheetContentHeight=167 }
    mycrabSheet = graphics.newImageSheet( "crab-sprite.png", carbSpritesheetData )
    crabSequenceData = {
                        {name = "normalRun", start=1, count=3, time=800}
                       }
    crabMoving = display.newSprite( mycrabSheet, crabSequenceData )
    crabMoving:play()
    crabMoving:scale(0.3, 0.3)
    crabMoving.x =_W/2
    crabMoving.y = _H-55
    screenGroup:insert(crabMoving)


    local speed = 1 -- variable controls the speed of background/sprite movement

    -- create a function to move background and sprite
    local function scrollBackgroundImages()
       crabMoving.x = crabMoving.x-speed
       backgroundImage1.x = backgroundImage1.x - speed
       if(backgroundImage1.x< -477)then 
           backgroundImage1.x = 480
           crabMoving.x = 480+_W/2
       end
    end
    Runtime:addEventListener("enterFrame",scrollBackgroundImages )  
于 2013-05-24T06:46:17.147 回答
1

移动东西有以下三种方式:

  1. 物理学使用各种方式来增加力或冲量。
  2. 使用 transition.to() API 调用。http://docs.coronalabs.com/api/library/transition/to.html
  3. 使用 Runtime:addEventListener("enterFrame", moveMyObject) 函数移动它,您提供“moveMyObject”,它会逐渐移动您的对象一点点。
于 2013-05-27T01:05:00.600 回答