我目前正在创建一个类似于黑莓上的直升机游戏的游戏,其目标是避开地雷并生存到计时器计数为 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
请有人帮助我