簡體   English   中英

如何在Corona SDK中移動固定距離的對象

[英]How to Move Objects in Fixed Distance in Corona SDK

我想在x軸上移動Object以獲得固定距離。 說我有對象精靈,我已放置在場景中。 我的要求是我想將X的對象移動到某些-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 )
    -- 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 )  

移動東西有三種方法:

  1. 物理學使用各種方式來增加力量或沖動。
  2. 使用transition.to()API調用。 http://docs.coronalabs.com/api/library/transition/to.html
  3. 使用Runtime:addEventListener(“enterFrame”,moveMyObject)函數移動它,在其中提供“moveMyObject”,它會逐漸移動您的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM