title: How do i add a button to back to Main Menu (another .lua file)?
body: <p>This game is something like killing mosquito. This is the level 1 file. When player tap the bee, game over will be displayed. When time's up, game over will be displayed. Total mosquitoes killed will be displayed at the end. I'm very very new to corona and to game development.
  My question is:</p>
  
  <ol>
  <li>Where to put in function to go back to main menu via "touch"? What is the code for it?</li>
  <li>i'm using composer. So i tried composer.gotoScene("menu") but that doesn't seems to work. Error.</li>
  </ol>
  
  <p>Thanks in advance for any help given. Here is part of the code: </p>
  
  <pre><code>local composer = require( "composer" )
  local scene = composer.newScene()
  local physics = require("physics")
  local widget = require "widget"
  physics.start()
  rand = math.random( 20 )
  
  local slap_sound = audio.loadSound("Sound/slap2.mp3")
  local ow = audio.loadSound("Sound/ow.mp3")
  local buttonSound = audio.loadSound("Sound/sound2.mp3")
  local back
  
  --local mossie_sound = audio.loadSound("Sound/mossie.mp3")
  local count={total1=0,total=0,touch=0,life=3}
  
  local background = display.newImageRect( "Images/bg.jpg", display.contentWidth, display.contentHeight )
      background.anchorX = 0
      background.anchorY = 0
      background.x, background.y = 0, 0
  
  local total=display.newText("Score : 0",display.contentWidth * 0.5, 20, "Arial", 26)
        total:setTextColor(000000)
  
  local time_remain = 30
  local mossie
  local bee
  local shade
  local gameOverScreen
  local winScreen
  local gameIsActive = false
  
  local countdown=display.newText(time_remain ,display.contentWidth * 0.9, 20, "Arial", 26)
  countdown:setTextColor(000000)
  
  local life = display.newText("Life : 3 " ,display.contentWidth * 0.5, 50, "Arial", 26)
  life:setTextColor(000000)
  
  local pauseBtn = display.newImage("Images/pause.png")
       pauseBtn.x = display.contentWidth * 0.1
       pauseBtn.y = display.contentHeight - 450
  
  local resumeBtn = display.newImage("Images/playb.png") 
      resumeBtn.x = display.contentWidth * 0.1
      resumeBtn.y = display.contentHeight - 450
  
  
       local gameOver = function()
       composer.removeScene("level1")  //scene cannot be removed???
       gameIsActive = false
       physics.pause()
       gameOverScreen = display.newImage("Images/gameover.png",400,300)
       gameOverScreen.x = 160
       gameOverScreen.y = 240
       gameOverScreen.alpha = 0
       transition.to(gameOverScreen,{time=500,alpha=1})
       total.isVisible = true
      total.text="Score : "..count.touch
      total.x = 160
      total.y = 400
          botwall.isVisible = false
          mossie.isVisible = false
          bee.isVisible = false
          life.isVisible = false
          countdown.isVisible = false
          pauseBtn.isVisible = false
          resumeBtn.isVisible = false
  
       end
  
  
  
      local collisionListener=function(self,event)
          if(event.phase=="began")then
              if(event.other.type=="mossie")then
                  audio.play(ow)
                  count.life=count.life-1
                      if(count.life==0) then
                          gameOver()
                      end 
                  event.other:removeSelf()
                  event.other=nil
              else
                  event.other:removeSelf()
                  event.other=nil
              end
  
          end
  
      end
  
  
      local function countDown(e)
          time_remain = time_remain-1
          countdown.text = time_remain
      end
  
      local checkTimer = function()
          if(time_remain == 0) then
          gameOver()
          end
      end
  
      function killIt(e)
          if(e.phase == "ended") then
              gameOver()
          end
      end
  
      --spawn Bee
      local function newBee(event)
  
          bee = display.newImage("Images/lebah.png")
          bee.x = 60 + math.random( 160 )
          bee.y = -100
          bee.type="other"
          physics.addBody( bee, { density=1.4, friction=0.3, bounce=0.2} )
          checkTimer()
  
          bee:addEventListener("touch",killIt)
  
      end
  
      ---whenMossieIsTouched
      function onTouch(mossie)
          audio.play(slap_sound)
          count.touch=count.touch+1
          total.text="Score : "..count.touch
          mossie.target:removeSelf()
          --print("total"..mossietouchcount)
      end
  
      ---spawn Mossie
      local function newMossie(event)    
          --audio.play(mossie_sound)
          total.text="Score : "..count.touch
          life.text="Life : "..count.life
          mossie = display.newImage("Images/biasa.png") 
          mossie.x = 60 + math.random( 160 )
          mossie.y = -100
          mossie.type="mossie"
          mossie:setFillColor(255,0,0)
          physics.addBody( mossie, { density=0.3, friction=0.2, bounce=0.5} )
          mossie.name = "mossie"
          --checkTimer()
          mossie:addEventListener("touch",onTouch)
  
      end 
  
      local bottomWall = function()
          --botwall=display.newRect(0,display.contentHeight,display.contentWidth*2,10)
          botwall=display.newImage("Images/tangan.png")
          botwall.x = 160
          botwall.y = 500
          botwall:setFillColor(22,125,185,255)
          botwall.type="botwall"
          botwall.collision=collisionListener
          physics.addBody(botwall,"static",{ density=100.0, friction=0.0, bounce=0.0} )
          botwall:addEventListener("collision",botwall)
      end
  
      local gameActivate = function()
          gameIsActive = true
      end
  
  
  
      local gameStart = function()
      local gametmr = timer.performWithDelay(1000, countDown, 0)
      local dropMossie = timer.performWithDelay( 1000 , newMossie, -1 )
      local dropBee = timer.performWithDelay( 1800 , newBee, -1)
  
      local pauseGame = function(e)
          if(e.phase=="ended") then
              audio.play(buttonSound)
              physics.pause()
              timer.pause(gametmr)
              pauseBtn.isVisible = false
              resumeBtn.isVisible = true
              return true
          end
      end
  
      local resumeGame = function(e)
          if(e.phase=="ended") then
              audio.play(buttonSound)
              physics.start()
              timer.resume(gametmr)
              pauseBtn.isVisible = true
              resumeBtn.isVisible = false
              return true
          end
      end
  
      pauseBtn:addEventListener("touch", pauseGame)
      resumeBtn:addEventListener("touch", resumeGame)
      resumeBtn.isVisible = false
      bottomWall()
      gameActivate()
  
  
      end
  
      gameStart()
      return scene
  </code></pre>