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!!
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.
ResponderExcluirMuito obrigado!
ExcluirSobre 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!
Teu código ta com erro na linha 38
ResponderExcluirstartButtonListener( '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()