Coronasdk问题:addeventListeners无法解决

最近我在编写一款新的游戏时遇到了一个问题,我似乎无法解决。

以下是代码:

    function newPower()
rand = math.random( 100 )

if (rand < 80) then
    powerup = display.newImage("power.png");
    powerup.class = "powerup"
    powerup.x = 60 + math.random( 160 )
    powerup.y = -100
    physics.addBody( powerup, { density=0.9, friction=0.3, bounce=0.3} )
    powerup:addEventListener( "touch", handlePowerTouch )
    end
    end
    local function handlePowerTouch( event )
    if event.phase == "began" then
    currentScore = currentScore * 2
    currentScoreDisplay.text = string.format( "%06d", currentScore )
    event.target:removeSelf()
    return true
    end
    end
    local function spawnpowers()
    -- 每隔一秒钟生成一个新的升级器,直到取消。
    spawnPower = timer.performWithDelay( 1000, newPower, -1 )
    end

任何帮助解决这个问题的建议都将不胜感激! 我遇到的问题是当我点击“运行”或“玩游戏”时,游戏开始工作,然后崩溃并显示以下消息:

addEventListener: 监听器不能为空:空栈回溯: ?:在函数'addeventListener'中 game.lua63:在函数'_listener'中 <-- 我已经给了你game.lua:63以上的内容。

谢谢

点赞
用户2858170
用户2858170
`powerup:addEventListener( "touch", handlePowerTouch )`

在这里,handlePowerTouch是空的,因为函数定义在这一行之后。

将函数定义移到这行之前,然后它应该可以工作了。

顺便问一下,为什么你有那么多全局变量呢?你应该尽可能使用局部变量。 
2016-03-08 20:58:48