Corona SDK级别:无法将我的级别集成到Storyboard - 断言失败错误
我希望有人能够帮助我,因为这个问题在最近几天一直让我疯狂。所以我刚从corona开始 - 做了一些教程,并且非常开心地发现了可能性。 问题:我想将简单的游戏集成到故事板中。我有些人无法找到合适的组合,并总是会弹出此错误消息。Corona SDK级别:无法将我的级别集成到Storyboard - 断言失败错误
File: assertion failed!
Assertion failed!
stack traceback:
[C]: ?
[C]: in function 'assert'
?: in function 'get0rCreateTable'
?: in function 'addEventListener'
?: in function 'addEventListener'
...ik/Desktop/_DummyProjekt2/Fruit Fliesv10/level01.lua:51: in function
<. . . ik/Desktop/_DummyProjekt2/ Fruit Fliesv10/level0l. lua:44>
?: in function 'dispatchEvent'
?: in function <?:1096>
(tail call): ?
?: in function <?:466>
?: in function <?:218>
这可能是一个新手的错误,但我一直坚持了几天,现在肯定需要一些帮助。我已经通过大部分教程和文档找到了,但没有运气。因此,任何帮助将是greately欢迎:)所以这是我的第1级
local storyboard = require("storyboard")
local scene = storyboard.newScene()
local widget = require ("widget")
local playfile = require ("play")
function scene:createScene(event)
local screenGroup = self.view
local spawnEnemy
local gameTitle
local scoreTxt
local score = 0
local hitBowl
local planet
local speedBump = 0
background = display.newImage("images/background.png")
background.y = centerY
background.x = centerX
bowl = display.newImage("images/bowl2.png")
bowl.x = centerX
bowl.y = centerY
scoreTxt = display.newText("Score: 0", 0, 0, "orange juice", 22)
scoreTxt.x = centerX
scoreTxt.y = 10
scoreTxt:setFillColor(1,1,1)
scoreTxt.y = 255
end
function scene:enterScene(event)
enemypics = {"images/blue.png","images/pink.png", "images/green.png"}
enemy = display.newImage(enemypics[math.random (#enemypics)])
enemy:addEventListener ("tap", shipSmash)
if math.random(2) == 1 then
enemy.x = math.random (-100, -10)
else
enemy.x = math.random (display.contentWidth + 10, display.contentWidth + 100)
enemy.xScale = -1
end
enemy.y = math.random (display.contentHeight)
enemy.trans = transition.to (enemy, { x=centerX, y=centerY, time=math.random(2500-speedBump, 4500-speedBump), onComplete=hitBowl })
speedBump = speedBump + 50
end
function startGame()
text = display.newText("Tap here to start. Protect the Fruit Bowl!", 0, 0, "orange juice", 24)
text.x = centerX
text.y = display.contentHeight - 30
text:setFillColor(0, 0, 0)
local function goAway(event)
display.remove(event.target)
text = nil
display.remove(gameTitle)
spawnEnemy()
scoreTxt.alpha = 1
scoreTxt.text = "Score: 0"
score = 0
bowl.numHits = 10
bowl.alpha = 1
speedBump = 0
end
text:addEventListener ("tap", goAway)
end
local function bowlDamage()
bowl.numHits = bowl.numHits - 2
bowl.alpha = bowl.numHits/10
if bowl.numHits < 2 then
bowl.alpha = 0
timer.performWithDelay (1000, startGame)
--audio.play (sndLose)
else
local function goAway(obj)
bowl.xScale = 1
bowl.yScale = 1
bowl.alpha = bowl.numHits/10
end
transition.to (bowl, { time=200, xScale=1.2, yScale=1.2, alpha=1, onComplete=goAway})
end
end
function hitBowl(obj)
display.remove(obj)
bowlDamage()
--audio.play(sndBlast)
if bowl.numHits > 1 then
spawnEnemy()
end
end
local function shipSmash(event)
local obj = event.target
display.remove(obj)
--audio.play(sndKill)
transition.cancel (event.target.trans)
score = score + 5
scoreTxt.text = "Score: " .. score
spawnEnemy()
end
function scene:exitScene(event)
end
function scene:destroyScene(event)
end
scene:addEventListener("createScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener("destroyScene", scene)
return scene
所以LUA是在很多方面的乐趣,这是一个你会学得很快。所以我只认为这可能是问题,如果不是,它可能会导致你在正确的道路上。
在你上面的错误信息,你会看到,它给你:
...ik/Desktop/_DummyProjekt2/Fruit Fliesv10/level01.lua:51: in function
这level01.lua:51
表示一个行号,所以线51(或者身边有)。并且在错误中提到的上面的行提到了addEventListener。这两件事是我们的线索。
下面是一些代码从周围还有:
enemy = display.newImage(enemypics[math.random (#enemypics)])
enemy:addEventListener ("tap", shipSmash)
if math.random(2) == 1 then
看起来像有一个的addEventListener存在,一个参数是一个字符串,另一个是功能。该功能在哪里?这是行这是行后51
这是最有可能的问题。在LUA(和其他一些语言)中,你必须按顺序声明事物。所以你可以做两件事。您可以将shipSmash
函数移到51
之上,或者您可以转发声明该变量。所以在文件的顶部你可以做local shipSmash
。这可以确保行51
该名称存在(它要检查的内容),然后可以稍后声明它(有时我会为代码结构执行此操作)。
希望有帮助。自从7月份以来,我一直在使用LUA/Corona SDK,但我仍然习惯了很多这样的小事,我花了好几个小时把头发扯出来。
谢谢!我改变了它,它的工作!之后弹出另一个错误(无关),但我设法弄清楚这一点:)非常感谢! – Samantha