1

我目前正在创建一个类似于黑莓上的直升机游戏的游戏,其目标是避开地雷并生存到计时器计数为 0,当实现这一点时,游戏进入下一个级别会变得更加困难。为此,您必须触摸屏幕以使飞船飞得更高(通过 applyForce)或让它下降(通过重力水平),因为飞船是一个动态物体。代码如下。

local function flightUp(self,event)
    print("Just before apply force")
    self:applyForce(0,-0.2,self.x,self.y)
    print(applyForce)
    audio.play(jetSound)
end

function touchS(event)
    if event.phase == "began" then
        ship.enterFrame = flightUp
        Runtime:addEventListener("enterFrame", ship)
    end

    if event.phase == "ended" then
        Runtime:removeEventListener("enterFrame", ship)
    end
end

然后我通过复制级别 1 的代码并将一些值更改为新的 lua 文件来创建级别 2。当使用几乎相似的代码时,我得到错误“尝试调用方法'applyForce'(一个零值)”使我的宇宙飞船在屏幕上但无法飞行或通过重力下降。除了这个错误之外,在调用“touchS1”之前,level2 lua 没有错误。

local function flightUp1(self,event)
    print("This is the flight up1")
    self:applyForce(0,-0.2,self.x,self.y)
end

function touchS1(event)
    if event.phase == "began" then
        ship.enterFrame = flightUp1
        Runtime:addEventListener("enterFrame", ship)
    end

    if event.phase == "ended" then
        Runtime:removeEventListener("enterFrame", ship)
    end

end

请有人帮助我

4

0 回答 0