Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Scene 1 --
- local composer = require( "composer" )
- local scene = composer.newScene()
- ---------------------------------------------------------------------------------
- -- All code outside of the listener functions will only be executed ONCE
- -- unless "composer.removeScene()" is called.
- ---------------------------------------------------------------------------------
- -- local forward references should go here
- ---------------------------------------------------------------------------------
- display.setStatusBar(display.HiddenStatusBar)
- local bg
- local title
- local button
- local function gotoScene2()
- composer.gotoScene("scene2", {time=800, effect="slideRight"})
- end
- -- "scene:create
- function scene:create( event )
- local sceneGroup = self.view
- bg = display.newRect(display.contentCenterX, display.contentCenterY, display.contentWidth, display.contentHeight)
- bg:setFillColor(0,1,0)
- sceneGroup:insert(bg)
- title = display.newText("Title Screen", display.contentCenterX, display.contentCenterY, "SFAutomaton", 40)
- title:setFillColor(0,0,1)
- sceneGroup:insert(title)
- button = display.newRoundedRect( display.contentCenterX, display.contentHeight*.8, display.contentHeight*.2, display.contentCenterY*.5, 20)
- button:setFillColor(1,0,0)
- sceneGroup:insert(button)
- button:addEventListener("tap", gotoScene2)
- -- Initialize the scene here.
- -- Example: add display objects to "sceneGroup", add touch listeners, etc.
- end
- -- "scene:show()"
- function scene:show( event )
- local sceneGroup = self.view
- local phase = event.phase
- if ( phase == "will" ) then
- -- Called when the scene is still off screen (but is about to come on screen).
- elseif ( phase == "did" ) then
- -- Called when the scene is now on screen.
- -- Insert code here to make the 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" ) then
- -- Called when the scene is on screen (but is about to go off screen).
- -- Insert code here to "pause" the scene.
- -- Example: stop timers, stop animation, stop audio, etc.
- elseif ( phase == "did" ) then
- -- Called immediately after scene goes off screen.
- end
- end
- -- "scene:destroy()"
- function scene:destroy( event )
- local sceneGroup = self.view
- -- Called prior to the removal of scene's view ("sceneGroup").
- -- Insert code here to clean up the 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
- -- Scene 2 --
- local composer = require( "composer" )
- local scene = composer.newScene()
- ---------------------------------------------------------------------------------
- -- All code outside of the listener functions will only be executed ONCE
- -- unless "composer:removeScene()" is called.
- ---------------------------------------------------------------------------------
- -- local forward references should go here
- ---------------------------------------------------------------------------------
- display.setStatusBar(display.HiddenStatusBar)
- local bg
- local title
- local button
- local function gotoScene1()
- composer.gotoScene("scene1", {time=800, effect="slideLeft"})
- end
- -- "scene:create()"
- function scene:create( event )
- local sceneGroup = self.view
- -- Initialize the scene here.
- -- Example: add display objects to "sceneGroup", add touch listeners, etc.
- end
- -- "scene:show()"
- function scene:show( event )
- local sceneGroup = self.view
- local phase = event.phase
- if ( phase == "will" ) then
- -- Called when the scene is still off screen (but is about to come on screen).
- elseif ( phase == "did" ) then
- -- Called when the scene is now on screen.
- -- Insert code here to make the scene come alive.
- -- Example: start timers, begin animation, play audio, etc.
- --[[
- bg = display.newRect(display.contentCenterX, display.contentCenterY, display.contentWidth, display.contentHeight)
- bg:setFillColor(0,0,1)
- sceneGroup:insert(bg)
- title = display.newText("Game", display.contentCenterX, display.contentCenterY, "SFAutomaton", 40)
- title:setFillColor(0,1,0)
- sceneGroup:insert(title)
- --]]
- local cX, cY = display.contentCenterX, display.contentCenterY
- -- Initialize Rows --
- local row1 = display.newRect(cX*1.1, cY*.4, cX*2, 10)
- local row2 = display.newRect(cX*1.1, cY*.7, cX*2, 10)
- local row3 = display.newRect(cX*1.1, cY, cX*2, 10)
- local row4 = display.newRect(cX*1.1, cY*1.3, cX*2, 10)
- local row5 = display.newRect(cX*1.1, cY*1.6, cX*2, 10)
- sceneGroup:insert(row1)
- sceneGroup:insert(row2)
- sceneGroup:insert(row3)
- sceneGroup:insert(row4)
- sceneGroup:insert(row5)
- -- Initialize Tower Positions --
- local activeTowers = {}
- local positions = {}
- positions[1] = display.newRect(cX*.5, cY*.4, 10, 10)
- positions[2] = display.newRect(cX*.8, cY*.4, 10, 10)
- positions[3] = display.newRect(cX*1.1, cY*.4, 10, 10)
- positions[4] = display.newRect(cX*1.4, cY*.4, 10, 10)
- positions[5] = display.newRect(cX*1.7, cY*.4, 10, 10)
- positions[6] = display.newRect(cX*.5, cY*.7, 10, 10)
- positions[7] = display.newRect(cX*.8, cY*.7, 10, 10)
- positions[8] = display.newRect(cX*1.1, cY*.7, 10, 10)
- positions[9] = display.newRect(cX*1.4, cY*.7, 10, 10)
- positions[10] = display.newRect(cX*1.7, cY*.7, 10, 10)
- positions[11] = display.newRect(cX*.5, cY, 10, 10)
- positions[12] = display.newRect(cX*.8, cY, 10, 10)
- positions[13] = display.newRect(cX*1.1, cY, 10, 10)
- positions[14] = display.newRect(cX*1.4, cY, 10, 10)
- positions[15] = display.newRect(cX*1.7, cY, 10, 10)
- positions[16] = display.newRect(cX*.5, cY*1.3, 10, 10)
- positions[17] = display.newRect(cX*.8, cY*1.3, 10, 10)
- positions[18] = display.newRect(cX*1.1, cY*1.3, 10, 10)
- positions[19] = display.newRect(cX*1.4, cY*1.3, 10, 10)
- positions[20] = display.newRect(cX*1.7, cY*1.3, 10, 10)
- positions[21] = display.newRect(cX*.5, cY*1.6, 10, 10)
- positions[22] = display.newRect(cX*.8, cY*1.6, 10, 10)
- positions[23] = display.newRect(cX*1.1, cY*1.6, 10, 10)
- positions[24] = display.newRect(cX*1.4, cY*1.6, 10, 10)
- positions[25] = display.newRect(cX*1.7, cY*1.6, 10, 10)
- -- Tower Menu --
- local tmBox = display.newRect(display.contentCenterX/8, display.contentCenterY, 70, display.contentCenterY*2)
- local tower1 = display.newRect(display.contentCenterX/8, display.contentCenterX*.3, 30, 30)
- tower1.towerNumber = 1
- tower1:setFillColor(1,0,0)
- sceneGroup:insert(tmBox)
- sceneGroup:insert(tower1)
- local function showPositions()
- for k,v in pairs(positions) do
- v:setFillColor(1,0,0)
- end
- end
- tower1:addEventListener("tap", showPositions)
- local function moveTower(pos)
- local newPosNum = tonumber(pos)
- for k,v in pairs(positions) do
- v:setFillColor(1,1,1)
- end
- if positions[newPosNum].isOccupied == false or positions[newPosNum].isOccupied == nil then
- positions[newPosNum].isOccupied = true
- local towerOneCopy = display.newRect(positions[tonumber(pos)].x, positions[tonumber(pos)].y, 30, 30)
- towerOneCopy:setFillColor(1,0,0)
- table.insert(activeTowers, towerOneCopy)
- end
- for k,v in pairs(activeTowers) do
- sceneGroup:insert(v)
- end
- end
- local function getPosTap(event)
- local pos = event.target.posNum
- if positions[tonumber(pos)].isOccupied == false or positions[tonumber(pos)].isOccupied == nil then
- moveTower(pos)
- else
- return
- end
- end
- for i = 1, #positions do
- positions[i]:addEventListener("tap", getPosTap)
- positions[i].posNum = i
- sceneGroup:insert(positions[i])
- end
- backButton = display.newRoundedRect( display.contentCenterX*1.8, display.contentHeight*0.1, 50, 50, 20)
- backButton:setFillColor(1,0,0)
- sceneGroup:insert(backButton)
- backButton:addEventListener("tap", gotoScene1)
- end
- end
- -- "scene:hide()"
- function scene:hide( event )
- local sceneGroup = self.view
- local phase = event.phase
- if ( phase == "will" ) then
- -- Called when the scene is on screen (but is about to go off screen).
- -- Insert code here to "pause" the scene.
- -- Example: stop timers, stop animation, stop audio, etc.
- elseif ( phase == "did" ) then
- -- Called immediately after scene goes off screen.
- end
- end
- -- "scene:destroy()"
- function scene:destroy( event )
- local sceneGroup = self.view
- -- Called prior to the removal of scene's view ("sceneGroup").
- -- Insert code here to clean up the 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement