错误加载模块'('预计在' ='

时间:2014-03-19 23:57:01

标签: lua corona

此代码用于为大炮射击创建函数侦听器。当我运行代码时,它给了我一个错误Question1.lua:43'('预计在'='

附近
function cannonCharge = function(event)
  if(event.phase == 'began') then
        impulse = 0
        cannon.isVisible = true
        Runtime:addEventListener('enterFrame', charge)
        print ('cannonCharge')
    end
end

function shot = function(event)
    if(event.phase == 'ended') then

        Runtime:removeEventListener('enterFrame', charge)
        cannon.isVisible = true
        cannon.rotation = 0

        cannonBall = display.newImage('cannon ball.png', 84, 220)
        physics.addBody(cannonBall, {density = 1, friction = 0, bounce = 0})
        cannonBalls:insert(cannonBall)
        print ('shot')

-- Shoot cannon ball
cannonBall:applyLinearImpulse(3, impulse, cannonBall.x, cannonBall.y )

--Collision listener
cannonBall:addEventListener ('collision', ballCollision)

    end
end

function scene:createScene(event)
...

我将听众添加到了EnterScene

function scene:enterScene( event )
local group = self.view
background:addEventListener('touch', cannonCharge)
background:addEventListener('touch', shot) 
  end

2 个答案:

答案 0 :(得分:2)

变量没有类型;只有价值观。所以,而不是

function shot = function(event)
-- ...
end

尝试

local shot = function(event)
-- ...
end

如果你没有放local,那么变量将是全局变量。应尽量减少全局变量的使用。

如果您更喜欢更结构化的语法,可以使用:

local function shot(event)
-- ...
end

这相当于:

local shot
shot = function(event)
-- ...
end

答案 1 :(得分:0)

您无法在同一对象上分配两个触控侦听器。因为它首先要调用哪个函数会产生冲突。 而不是那样,你需要指定一个触摸和一个点击监听器。所以没有冲突。 background:addEventListener('tap',cannonCharge) background:addEventListener('touch',shot)