Coronasdk与addeventListeners的问题

时间:2016-03-08 20:08:55

标签: lua corona

最近,当我遇到一个我似乎无法修复的问题时,我正在编写一个新游戏。

这是代码:

    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()
    -- Spawn a new powerup every second until canceled.
    spawnPower = timer.performWithDelay( 1000, newPower, -1 )
    end

我们将非常感谢您解决此问题的任何帮助! 我遇到的问题是当我点击&#34;运行&#34;或者&#34;玩&#34;游戏开始工作然后崩溃并显示以下消息:

addEventListener:listener不能为nil:nil stack traceback: ?:in function&#39; addeventListener&#39; game.lua63:在函数&#39; _listener&#39; &lt; - 我给你game.lua:63以上。

由于

1 个答案:

答案 0 :(得分:1)

powerup:addEventListener( "touch", handlePowerTouch )

此处handlePowerTouch为nil,因为函数定义在此行之后。

将你的函数定义移到该行的前面,然后它应该可以工作。

顺便问一下,你有这么多全局变量的原因是什么?你应该尽可能使用局部变量。