Você está na página 1de 5

Desenvolvimento Jogos 2D

1. Prototipo inicial - Desenhando:


Para desenvolver um jogo, primeiro necessrio compreender as classes de desenho e
controle de loops. Iniciaremos com um jogo simples, apenas utilizando a classe Canvas para
desenhar e manipular formas, controlar colises, identificar aes do usurio e demonstrar
atualizao de imagens, de acordo com as aes do usurio. No ser utilizado nenhum
framework de desenvolvimento, apenas android puro.

Inicialmente trabalharemos com duas classes: Uma Activity, onde ser recebido as aes do
usurio, e uma classe de controle da lgica do jogo, que far a atualizao das imagens
mostradas na tela.
Primeiramente, na activity principal, deixaremos ela como tela inteira:

Agora criaremos a classe onde ser feito a lgica do jogo. Esta classe ser uma thread que
ficara executando, recebendo os inputs enviados pelo usurio:

Nossa classe com a logica estender da classe SurfaceView e implementar a interface
Runnable:
Runnable permite rodar instrues em uma thread separada.
SurfaceView Classe do android que permite desenhar em uma superfcie, ao invs de
utilizarmos o XML.

Agora, em nossa MainActivity, vamos declarar um objeto da nossa classe lgica, e vamos
defini-lo como a tela de nossa activitiy, ao invs de um XML:

2. Game Loop:
O conceito mais importante de um jogo o seu Loop principal. neste Loop em que
sero desenhados os inimigos, detectados colises, identificados eventos, atualizado
placar e gerados eventos aleatrios. O Loop principal realizado diversas vezes por
segundo.
Criaremos em nossa classe Logica um loop infinito:

,

Na MainActivity devemos chamar o mtodo rodar(), para iniciar a lgica. No momento
no far nada.
3. Trabalhando com Imagens com a classe Canvas
Para desenharmos agora na tela do Android, utilizaremos uma classe chamada Canvas.
Nesta classe poderemos pintar diversas formas. Utilizaremos de um objeto
SurfaceHolder e um objeto Paint:
SurfaceHolder utilizaremos para verificar se a tela est apta ou no para
receber imagens.
Paint utilizaremos como uma base para a cor dos desenhos.
Definimos ambos os objetos no inicio da classe Logica.

Agora no nosso Loop principal, estaremos travando a tela, pintando o que for
necessrio e destravando-a novamente:

Com a classe Paint estamos definindo a cor de nossa forma, e com a classe Canvas
estamos definindo-a em nossa tela.
Aps destravado a imagem, ela dever ser mostrada da seguinte forma:

Utilizamos o mtodo Canvas.drawCircle(int posX, int posY, int raio, Paint paint);
Onde PosX e PosY definem o local onde ser iniciado o centro do circulo, o raio ser o
raio do circulo em pixels, Paint ser o objeto com as propriedades de cor.
Dependendo da forma que deseja pintar, o mtodo diferente: eis alguns mtodos:







Para definirmos a cor de fundo, utilizaremos o mtodo canvas.drawColor(int Color).
Este mtodo deve ser antes de todos os outros desenhos, para no sobrepo-los.