tech/game

21/07/13 TicTacToe - DISPLAY OBJECTS & FUNCTIONS: Creating display.objects and learning to use local functions

tech-lover 2021. 7. 13. 13:03

https://youtu.be/eTh3f-oabSQ

 

```

local composer = require( "composer" )

local scene = composer.newScene()

 

-- -----------------------------------------------------------------------------------

-- Code outside of the scene event functions below will only be executed ONCE unless

-- the scene is removed entirely (not recycled) via "composer.removeScene()"

-- -----------------------------------------------------------------------------------

 

 

local backgroundImage

local gridSqure

 

local optionsNotes = 

{

    text = "O",

    x = display.contentCenterX,

    y = display.contentCenterY,

    width = 200,

    font = native.systemFont,

    fontSize = 180,

    align = "center"  -- Alignment parameter

}

 

local optionsCrosses = 

{

    text = "X",

    x = display.contentCenterX,

    y = display.contentCenterY,

    width = 200,

    font = native.systemFont,

    fontSize = 180,

    align = "center"

}

 

-- -----------------------------------------------------------------------------------

-- Scene event functions

-- -----------------------------------------------------------------------------------

 

-- create()

function scene:create( event )

 

    local sceneGroup = self.view

    -- Code here runs when the scene is first created but has not yet appeared on screen

 

    --[[ 

    local myText = display.newText( options )

    myText:setFillColor( 1, 0, 0 )

    --]]

 

    backgroundImage = display.newImageRect("images-tictactoe/background-orange.jpg"7681024)

    backgroundImage.x = display.contentCenterX

    backgroundImage.y = display.contentCenterY

 

    local charNotes = display.newText( optionsNotes )

    charNotes:setFillColor( 100 )

    charNotes.isVisible = false

 

    local charCrosses = display.newText( optionsCrosses )

    charCrosses:setFillColor( 001 )

    charCrosses.isVisible = false



end

 

 

-- show()

function scene:show( event )

 

    local sceneGroup = self.view

    local phase = event.phase

 

    if ( phase == "will" ) then

        -- Code here runs when the scene is still off screen (but is about to come on screen)

         

        -- Starting box coordinates (top left box 1)

        local xPos = display.contentCenterX - 100

        local yPos = display.contentCenterY - 100

 

        local function drawSquare(xPosIn, yPosIn)

            print("sqaure")

            gridSqure = display.newRect( xPosIn, yPosIn, 100100)

            gridSqure.strokeWidth = 3

            gridSqure:setStrokeColor( 000)

        end



        local function drawRow() 

            print("drawRow()")

 

            drawSquare(xPos, yPos)

            drawSquare(xPos + 100, yPos)

            drawSquare(xPos + 200, yPos)

 

        end

 

        drawRow()



    elseif ( phase == "did" ) then

        -- Code here runs when the scene is entirely on screen

 

    end

end

 

 

-- hide()

function scene:hide( event )

 

    local sceneGroup = self.view

    local phase = event.phase

 

    if ( phase == "will" ) then

        -- Code here runs when the scene is on screen (but is about to go off screen)

 

    elseif ( phase == "did" ) then

        -- Code here runs immediately after the scene goes entirely off screen

 

    end

end

 

 

-- destroy()

function scene:destroy( event )

 

    local sceneGroup = self.view

    -- Code here runs prior to the removal of scene's view

 

end

 

 

-- -----------------------------------------------------------------------------------

-- Scene event function listeners

-- -----------------------------------------------------------------------------------

scene:addEventListener( "create", scene )

scene:addEventListener( "show", scene )

scene:addEventListener( "hide", scene )

scene:addEventListener( "destroy", scene )

-- -----------------------------------------------------------------------------------

 

return scene

```