【问题标题】:lua transition.to onComplete function isnt workinglua transition.to onComplete 功能不起作用
【发布时间】:2018-05-11 02:58:41
【问题描述】:
local link = require("link")
local walkingData = require("Animation")

local walk_right
local walk_down
local walk_left
local walk_up

--loading in the sprite sheet and animation data
local options = link.getSpriteSheetData()
local walking = walkingData.getAnimationSequences()

-- creating the image sheet and sprite
local sheet1 = graphics.newImageSheet("link.png", options)

local linkWalk = display.newSprite(sheet1, walking)

linkWalk.x = 40
linkWalk.y= display.contentHeight - 60

--start the loop by transition
--linkWalk:setSequence("Walking up")
--linkWalk:play()
--transition.to(linkWalk, {y= 60, time= 8000, onComplete = walk_right})

local function walk_right ()

    linkWalk:setSequence("Walking right")
    linkWalk:play()
    transition.to(linkWalk, {x=display.contentWidth - 60, time= 3200, 
onComplete=walk_down})

end

local function walk_left ()

    linkWalk:setSequence("Walking left")
    linkWalk:play()
    transition.to(linkWalk, {x= 60, time= 3200, onComplete = walk_up})
end

local function walk_up ()

    linkWalk:setSequence("Walking up")
    linkWalk:play()
    transition.to(linkWalk, {y= 60, time= 8000, onComplete = walk_right})

end

local function walk_down ()

    linkWalk:setSequence("Walking down")
    linkWalk:play()
    transition.to(linkWalk, {y=display.contentHeight - 60, time= 8000, 
onComplete = walk_left})

end

--starting by making the sprite move upward
walk_up()'

我正在上电晕课程,并且在作业时遇到问题我试图让精灵图像在设备的边界周围走动,但精灵向上移动并向右移动然后停止。为什么 transition.to onComplete 函数在第一个调用的函数中正常工作,但在 onComplete 函数调用的函数中却不能正常工作。我尝试了多种启动它的方法,但只能向右移动,有没有更好的方法来从过渡到过渡?

【问题讨论】:

  • stackoverflow.com/help/mcve - 如果您“尝试过多种方式”,那么您应该在问题中包含您尝试过的内容,以便我们可以帮助您在此基础上再接再厉
  • 它包括不调用函数来“快速启动”它,因为没有更好的术语,并使用转换函数和调用函数的 onComplete 函数,甚至没有达到我所拥有的代码列出我已经用之前的代码更新了它

标签: lua coronasdk


【解决方案1】:

试试

local composer   = require 'composer' 

local scene = composer.newScene()
local sprite


function scene:create( event )

    local sceneGroup = self.view

    local _T = display.screenOriginY
    local _B = display.viewableContentHeight - display.screenOriginY
    local _L = display.screenOriginX
    local _R = display.viewableContentWidth - display.screenOriginX

    sprite = display.newImage( sceneGroup, 'bubble.png', 0, 0 )
    sprite.index = 1

    local data = { 
        { x=sprite.width * 0.5,      y=_B - sprite.height * 0.5, time=3200 },
        { x=sprite.width * 0.5,      y=_T + sprite.height * 0.5, time=8000 },
        { x=_R - sprite.width * 0.5, y=_T + sprite.height * 0.5, time=3200 },
        { x=_R - sprite.width * 0.5, y=_B - sprite.height * 0.5, time=8000 },
        { x=sprite.width * 0.5,      y=_B - sprite.height * 0.5, time=3200 }
    }

    function sprite.onComplete( self )

        if self.index < 5 then 

            local prevTrans = data[self.index]
            local nextTrans = data[self.index + 1]
            nextTrans.onComplete = self.onComplete
            self.index = self.index + 1
            self.x, self.y = prevTrans.x, prevTrans.y
            transition.to( self, nextTrans )

        end

    end 



end

function scene:show( event )

    local sceneGroup = self.view
    local phase     = event.phase

    if phase == 'will' then

    elseif phase == 'did' then

        sprite.onComplete( sprite )

    end
end

function scene:hide( event )

    local sceneGroup = self.view
    local phase     = event.phase

    if phase == 'will' then

    elseif phase == 'did' then

    end
end

function scene:destroy( event )

end

scene:addEventListener( 'create', scene )
scene:addEventListener( 'show', scene )
scene:addEventListener( 'hide', scene )
scene:addEventListener( 'destroy', scene )

return scene

我使用自定义图像和作曲家模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多