Tutorial Pong #2 - Tela de Créditos


Bom dia a todos!!

Hoje vou colocar a tela de créditos deste jogo.
Para isso, vamos adicionar as seguintes linhas:
-- [Tela Créditos]
local telaCreditos
local mostrarCreditos = {}
local ocultarCreditos = {}

Agora criaremos o listener do botão, o evento que será disparado ao clicar no botão.
startButtonListener( 'add' )
function startButtonListener( action )
    if action == 'add' then
        btnCreditos:addEventListener( 'tap', mostrarCreditos )
    end
end

function mostrarCreditos:tap( e )
    btnJogar.isVisible    = false
    btnCreditos.isVisible = false

    telaCreditos = display.newImage( 'creditos.png', _W / 2, _H / 2 + 90 )

    telaCreditos:addEventListener( 'tap', ocultarCreditos )
end

function ocultarCreditos:tap( e )
    btnJogar.isVisible    = true
    btnCreditos.isVisible = true

    telaCreditos:removeEventListener( 'tap', ocultarCreditos )
    display.remove( telaCreditos )
    telaCreditos = nil
end

Com isso, já deve estar aparecendo a tela de créditos ao clicar no botão. Mas não é só isso não. Vamos colocar um efeito nesta transição de telas. Para isso, vamos adicionar algumas linhas à função mostrarCreditos:
    lastY = titulo.y
    transition.to( titulo, { time = 300, y = ( display.contentHeight * 0.5 ) - ( titulo.height + 50 ) } )
    transition.to( telaCreditos, { time = 300, y = ( display.contentHeight * 0.5 ) + 35,
        onComplete = function()
            telaCreditos:addEventListener( 'tap', ocultarCreditos )
        end } )

E vamos alterar a função ocultarCreditos para que fique assim:
function ocultarCreditos:tap( e )
    transition.to( telaCreditos, { time = 300, y = _H / 2 + 90,
        onComplete = function()
            btnJogar.isVisible = true
            btnCreditos.isVisible = true
            telaCreditos:removeEventListener( 'tap', ocultarCreditos )
            display.remove( telaCreditos )
            telaCreditos = nil
        end } )
    transition.to( titulo, { time = 300, y = lastY } )
end

Bom, a animação desta tela não foi nada muito grandioso, mas já deu outra cara ao app.
Para baixar essa parte do tutorial, clique aqui.
Espero que estejam gostando deste tutorial. Até o próximo!!

Sobre o autor

André Luís Batista Kunde
Técnico em Informática (2004), Bacharel em Administração com ênfase em Marketing (2009), buscando ser Engenheiro de Software, Trabalhando com software educacional e me aventurando pelo mundo da programação mobile.

3 comentários:

  1. Muito bom André. André você poderia me ajudar em uma implementação? Eu gostaria de pegar um texto e fazer com que ele apareça como se estivesse digitando em uma máquina de escrever. Eu fiz uma função que pega o texto, vai retirando cada caractere e um for do tamanho do texto, para que seja colocado caractere por caractere no displayobject que mostra o texto. Mas não estou conseguindo fazer com que ele dê um tempo entre cada caractere. Agradeço desde já por tudo.

    ResponderExcluir
    Respostas
    1. Muito obrigado!
      Sobre a sua questão de mostrar os caracteres, tem sim uma forma de fazer, onde você diz a ação que você quer e o tempo entre uma ação e outra.
      Estou montando um tutorial, e assim que pronto posto aqui.
      Valeu!

      Excluir
  2. Teu código ta com erro na linha 38
    startButtonListener( 'add' )

    -- Oculta barra de estatus
    display.setStatusBar( display.HiddenStatusBar )

    -- Constantes que armazenam o tamanho da tela
    local _W = display.contentWidth
    local _H = display.contentHeight

    --[FUNDO]
    local bg = display.newImage( 'bg.png', _W/2,_H/2 )

    --[TELA INICIAL]
    local titulo
    local btnJogar
    local btnCreditos
    local telaInicial

    --Funções
    local Main = {}

    --Função Main
    function Main()
    titulo = display.newImage( 'titulo.png' ,_W / 2, _H / 2 )
    btnJogar = display.newImage( 'btnJogar.png', _W / 2, _H / 1.5 + 10 )
    btnCreditos = display.newImage( 'btnCreditos.png', _W / 2, _H / 1.5 + 70 )

    telaInicial = display.newGroup( titulo, btnJogar, btnCreditos)
    end



    --[Tela Créditos]
    local telaCreditos

    local mostrarCreditos = {}
    local ocultarCreditos = {}


    startButtonListener( 'add' )

    function startButtonListener( action )
    if action == 'add' then
    btnCreditos:addEventListener( 'tap', mostrarCreditos )
    end
    end

    function mostrarCreditos:tap( e )
    btnJogar.isVisible = false
    btnCreditos.isVisible = false

    telaCreditos = display.newImage( 'creditos.png', _W / 2, _H / 2 + 90 )

    lastY = titulo.y
    transition.to( titulo, { time = 300, y = ( display.contentHeight * 0.5 ) - ( titulo.height + 50 ) } )
    transition.to( telaCreditos, { time = 300, y = ( display.contentHeight * 0.5 ) + 35,
    onComplete = function()
    telaCreditos:addEventListener( 'tap', ocultarCreditos )
    end } )

    telaCreditos:addEventListener( 'tap', ocultarCreditos )

    end

    function ocultarCreditos:tap( e )
    transition.to( telaCreditos, { time = 300, y = _H / 2 + 90,
    onComplete = function()
    btnJogar.isVisible = true
    btnCreditos.isVisible = true
    telaCreditos:removeEventListener( 'tap', ocultarCreditos )
    display.remove( telaCreditos )
    telaCreditos = nil
    end } )
    transition.to( titulo, { time = 300, y = lastY } )
    end

    Main()

    ResponderExcluir

Copyright © 2013 Aprendendo Android and Blogger Themes.