我正在用corona SDK做一个游戏,但我有这个小问题。
我有一个带按钮的菜单。如果我按下它,它会将我发送到游戏的第一关。当我通过最后一关时,游戏会让我回到菜单。Bur,如果我再次开始播放第一个,我的图像不会出现。
图像是球,要通过关卡,您必须消除所有球。为此,我使用:
球:删除斯莱夫()球 = 无
但是,我不认为这是问题所在,因为我消除了这些行,它不起作用。图像在 scene:createScene 函数中创建,并插入到组中。
我缩短了要理解的第一级代码。
local storyboard = require( "storyboard" )
local scene = storyboard.newScene()
local physics = require "physics"
physics.start(); physics.pause()
physics.setGravity( 0, 0 )
local cont = 0
local bur = {}
function eliminar1( event )
if (cont == 0) and (event.phase == "began") then
event.target:removeSelf()
bur[1] = nil
cont = cont + 1
end
end
function eliminar2( event )
if (cont == 1) and (event.phase == "began") then
bur[2]:removeSelf()
bur[2] = nil
cont = cont + 1
end
end
function eliminar3( event )
if (cont == 2) and (event.phase == "began") then
bur[3]:removeSelf()
bur[3] = nil
storyboard.gotoScene( "levels.1.level2" )
end
end
function scene:createScene ( event )
local screenGroup = self.view
for i = 1,3 do
bur[i] = display.newImage("irudiak/"..i..".png")
bur[i]:translate(math.random(0,280), math.random(0,400) )
physics.addBody( bur[i], {bounce = 0.3 } )
bur[i]:setLinearVelocity(math.random(-50,50), math.random(-50,50) )
screenGroup:insert(bur[i])
end
bur[1]:addEventListener("touch", eliminar1)
bur[2]:addEventListener("touch", eliminar2)
bur[3]:addEventListener("touch", eliminar3)
end
function scene:enterScene( event )
local screenGroup = self.view
physics.start()
end
function scene:exitScene( event )
local screenGroup = self.view
physics.stop()
end
function scene:destroyScene( event )
local screenGroup = self.view
package.loaded[physics] = nil
physics = nil
end
return scene
createScene
仅在您gotoScene
时第一次运行。下次只播放willEnterScene
和enterScene
。要再次播放createScene
,您必须将其删除(我猜storyboard.removeScene()
)。或者你可以移动一些你需要willEnterScene
的东西。有关更多详细信息,您可以观看以下内容:http://www.coronalabs.com/blog/2013/08/20/tutorial-reloading-storyboard-scenes/