events - Corona SDK game scenes -


i looked in many other questions , tutorials, sadly, without result. trying go scene1 scene2 event listener , copying code given in project. difference between button , working 1 declare mine in lua file , not exist in scene1.ccscene have put image object in scene1.csscene in order use button?

the code try:

local composer = require( "composer" )  local scene = composer.newscene()  -- ----------------------------------------------------------------------------------------------------------------- -- code outside of listener functions executed once unless "composer.removescene()" called. -- -----------------------------------------------------------------------------------------------------------------  -- local forward references should go here local start_button = display.newimage("start.png")    --start button  -- -------------------------------------------------------------------------------   -- "scene:create()" function scene:create( event )      local scenegroup = self.view      -- initialize scene here.     -- example: add display objects "scenegroup", add touch listeners, etc.     start_button.x=200     start_button.y=150 end   -- "scene:show()" function scene:show( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene still off screen (but come on screen).     elseif ( phase == "did" )         -- called when scene on screen.         -- insert code here make scene come alive.         -- example: start timers, begin animation, play audio, etc.         function nextscene:touch ( event )                 local phase = event.phase                 if "ended" == phase                     composer.gotoscene( "scene2", { effect = "fade", time = 300 } )                 end             end         start_button:addeventlistener( "touch", nextscene )     end end   -- "scene:hide()" function scene:hide( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene on screen (but go off screen).         -- insert code here "pause" scene.         -- example: stop timers, stop animation, stop audio, etc.     elseif ( phase == "did" )         -- called after scene goes off screen.         if nextscenebutton             start_button:removeeventlistener( "touch", nextscene )         end     end end   -- "scene:destroy()" function scene:destroy( event )      local scenegroup = self.view      -- called prior removal of scene's view ("scenegroup").     -- insert code here clean scene.     -- example: remove display objects, save state, etc. end   -- -------------------------------------------------------------------------------  -- listener setup scene:addeventlistener( "create", scene ) scene:addeventlistener( "show", scene ) scene:addeventlistener( "hide", scene ) scene:addeventlistener( "destroy", scene )  -- -------------------------------------------------------------------------------  return scene 

the extension of scene files needs ".lua" in corona. think "csscene" has cocoa.

the code below work.

notes:

  • make sure files ends .lua (main.lua, scene1.lua, scene2.lua).
  • start_button rectangle can easy change image.
  • start_button added scenegroup. group scene use i.e. when change scene objects in scenegroup handled properly.
  • i add eventlistener in different way, please read documentation more information: https://docs.coronalabs.com/api/event/touch/index.html

main.lua:

local composer = require( "composer" ) composer.gotoscene("scene1") 

scene1.lua:

local composer = require( "composer" )  local scene = composer.newscene()  -- variables local start_button  -- events local function ontouchstartbutton( event )     if event.phase == "ended"         composer.gotoscene( "scene2" )     end end  function scene:create( event )     local scenegroup = self.view      -- create start_button     start_button = display.newrect( 100, 100, 100, 100 )      -- make sure insert button scenegroup     scenegroup:insert( start_button )      -- set position of start_button     start_button.x=200     start_button.y=150      -- add event listener in "create" stage instead of show state     -- start_button in scene_group there no need remove     -- touch listener under "destroy" stag     start_button:addeventlistener( "touch", ontouchstartbutton ) end   -- "scene:show()" function scene:show( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene still off screen (but come on screen).     elseif ( phase == "did" )         -- called when scene on screen.         -- insert code here make scene come alive.         -- example: start timers, begin animation, play audio, etc.     end end   -- "scene:hide()" function scene:hide( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene on screen (but go off screen).         -- insert code here "pause" scene.         -- example: stop timers, stop animation, stop audio, etc.     elseif ( phase == "did" )     end end   -- "scene:destroy()" function scene:destroy( event )      local scenegroup = self.view      -- called prior removal of scene's view ("scenegroup").     -- insert code here clean scene.     -- example: remove display objects, save state, etc. end   -- -------------------------------------------------------------------------------  -- listener setup scene:addeventlistener( "create", scene ) scene:addeventlistener( "show", scene ) scene:addeventlistener( "hide", scene ) scene:addeventlistener( "destroy", scene )  -- -------------------------------------------------------------------------------  return scene 

scene2.lua:

local composer = require( "composer" )  local scene = composer.newscene()  -- ----------------------------------------------------------------------------------------------------------------- -- code outside of listener functions executed once unless "composer.removescene()" called. -- -----------------------------------------------------------------------------------------------------------------  -- local forward references should go here  -- -------------------------------------------------------------------------------   -- "scene:create()" function scene:create( event )      local scenegroup = self.view      -- initialize scene here.     -- example: add display objects "scenegroup", add touch listeners, etc. end   -- "scene:show()" function scene:show( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene still off screen (but come on screen).         print("now in scene2.lua!")     elseif ( phase == "did" )         -- called when scene on screen.         -- insert code here make scene come alive.         -- example: start timers, begin animation, play audio, etc.     end end   -- "scene:hide()" function scene:hide( event )      local scenegroup = self.view     local phase = event.phase      if ( phase == "will" )         -- called when scene on screen (but go off screen).         -- insert code here "pause" scene.         -- example: stop timers, stop animation, stop audio, etc.     elseif ( phase == "did" )         -- called after scene goes off screen.     end end   -- "scene:destroy()" function scene:destroy( event )      local scenegroup = self.view      -- called prior removal of scene's view ("scenegroup").     -- insert code here clean scene.     -- example: remove display objects, save state, etc. end   -- -------------------------------------------------------------------------------  -- listener setup scene:addeventlistener( "create", scene ) scene:addeventlistener( "show", scene ) scene:addeventlistener( "hide", scene ) scene:addeventlistener( "destroy", scene )  -- -------------------------------------------------------------------------------  return scene 

Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -