“坏参数#-1到'newImageRect'(代理预期,没有了)” - Lua,使用Corona SDK

时间:2016-07-30 19:25:21

标签: android lua runtime-error corona

所以我刚开始学习如何使用Corona SDK来创建游戏。制作小行星射击型游戏,并在尝试玩游戏时遇到此错误。

(我知道这个问题几乎有一个完全复制品,但它有0个答案,唯一的评论不适用于我。)

这是完整错误+堆栈跟踪:

19:21:16.393  ERROR: Runtime error
19:21:16.393  C:\Users\Some User\Documents\Corona Projects\StarExplorer\game.lua:87: bad argument #-1 to 'newImageRect' (Proxy expected, got nil)
19:21:16.393  stack traceback:
19:21:16.393    [C]: in function 'newImageRect'
19:21:16.393    C:\Users\Some User\Documents\Corona Projects\StarExplorer\game.lua:87: in function '_listener'
19:21:16.393    ?: in function <?:167>
19:21:16.393    ?: in function <?:169>

Here是game.lua的哈希,here是menu.lua类的哈希,它将场景从菜单切换到游戏。

我可以说第87行引起了这个问题,并且newImageRect的参数出了问题,但除此之外我没有任何线索。

游戏在首次运行时运行并完美播放,但尝试重播会导致错误。 切换菜单文件中场景的代码位于第13-17行。

感谢任何帮助,对不起,如果我是愚蠢的,并且遗漏了一些明显的东西 谢谢!

编辑:尝试删除game.lua场景时会导致错误。

1 个答案:

答案 0 :(得分:1)

您使用createAsteroid致电timer.performDelay。因此,当游戏场景被破坏或隐藏时,您需要取消此计时器。

asteroidSpawnTimer = timer.performWithDelay( asteroidSpawnTime, createAsteroid, 0 )

试试这个:

function scene:hide( event )
--[[...]]--
if ( phase == "will" ) then
    timer.cancel( gameLoopTimer )
    timer.cancel( asteroidSpawnTimer ) -- cancel it
--[[...]]--