MonoGame Tutorial — Parte 6: Start e Game Over

Ronildo Souza
3 min readMay 24, 2018

--

Anteriormente…

MonoGame Tutorial — Parte1: Introdução

MonoGame Tutorial — Parte2: Planejamento do Jogo e Inicio do Projeto

MonoGame Tutorial — Parte3: Movimentação dos Objetos do Jogo

MonoGame Tutorial — Parte4: Colisão e Cenário

MonoGame Tutorial — Parte5: Sons

Para finalizar este tutorial será implementado um botão de start e a saudosa mensagem de Game Over.

Para fazer estas implementações será utilizado uma imagem que servirá como botão de start e criado um novo arquivo de fonte para a mensagem de game over utilizando a fonte Fipps.

Baixe os arquivos:

Botão Start

No Solution Explorer navegue até a pasta Content, clique com o botão direito do mouse no arquivo Content.mgcb é selecione Open With…, procure por MonoGame Pipeline Tool(MGPT) e de um duplo clique.

Importando imagem do botão de start
Criando arquivo de fonte para Game Over

Para utilizar uma fonte especifica no jogo, basta baixar o arquivo de fonte desejado e copiar o mesmo para a pasta Content do projeto e definir a mesma no arquivo .spritefont na tag FontName.

Pasta Content

No arquivo fonteGameOver.spritefont foi realizado a seguinte alteração:

<!-- CÓDIGO OCULTADO! -->    <FontName>Fipps-Regular</FontName>    <Size>150</Size><!-- CÓDIGO OCULTADO! -->

Show me the code!

Foi criado a classe BotaoStart.cs para representar o botão start é facilitar a utilização do mesmo na classe Game1.cs.

O método Start apenas verifica se o touch do usuário na tela do dispositivo ocorreu sobre o botão e retorna um resultado do tipo bool.

O método SetaPosicao define uma posição no centro da tela do dispositivo e atribui este valor para a variável Posicao herdada de GameObject2D.cs que é utilizada no método Draw, também de GameObject2D.cs.

Em Game1.cs foi criado as variáveis _fonteGameOver, _btnStart e _start dos tipos SpriteFont, BotaoStart e bool, respectivamentes.

No método Initialize a variável _btnStart foi inicializada e no LoadContent e realizado o carregamento da fonte e da textura do botão de start em seguida a posição do botão é setada utilizando o método SetaPosicao.

A variável _start foi criada para manipular o que poderá ser feito e desenhado ao iniciar o jogo, ela é utilizada dentro do método Update e Draw. Para que está manipulação ocorra foi criado uma condicional if e no corpo desta condicional foi definido o que será ou não executado.

No caso do método Update, toda a lógica de movimentação dos objetos e validações foi adicionado ao corpo da condicional.

Já no método Draw apenas o draw dos buracos e do carro foi adicionado ao corpo da condicional.

Para que a mensagem de Game Over seja desenhada, foi realizado uma condicional para saber se a variável _start é falsa e a resistência do carro é menor ou igual a zero.

Após estas implementações o resultado obtido é:

Para que vocês não fiquem apenas no recurso de Copiar/Colar deixo como atividade as seguintes implementações:

  • Criar o botão de Reset após ocorrer o Game Over.
  • Criar um item de regeneração de 20% da resistência do carro que aparece de vez em quando.
  • Criar uma tabela de ranking por desconto de IPVA.
  • Criar um menu e/ou botão para desabilitar a música.
  • Adicione mais de uma música ao MediaPlayer.
  • Reinicie a música no Start e Reset do jogo.

DICA:

Mesmo que sua ideia seja simples ou que alguém já tenha feito, NÃO deixe a mesma apenas no papel e/ou na mente, coloque ela em pratica que novas funcionalidades iram surgir e o projeto irá amadurecer.

Repositório dos Exemplos:

https://github.com/RonildoSouza/MonoGameTutorial/tree/Parte6

Baixe o Game: https://goo.gl/4p3YdA

REFERÊNCIAS:

https://www.dafont.com

--

--

No responses yet