我目前正在创建一个类似于黑莓直升机游戏的游戏,其目标是避免地雷并生存直到计时器计数到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'(一个零值)”使我的太空飞船在屏幕上但无法飞行或通过重力下降。
除了这个错误之外,level2 lua在调用“touchS1”之前没有错误。
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
有人帮助我