Buscar

Programação DM Aula7B - 2012

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Aula 7b- Construção de um jogos
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Conteúdo Programático desta aula
Aprender a construir um jogo no celular;
Programar uma interface visual;
Conhecer objetos que servem para a construção de jogos.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
A Classe Canvas
É uma classe base utilizada em aplicações que necessitam lidar com eventos de baixo nível e emissão de gráficos na tela. 
As aplicações de jogos fazem uso massivo dela;
É intercambiável com as classes de tela padrão, de modo que um aplicativo pode misturar e combinar Canvas nas telas, conforme necessário. 
Fornece métodos ao desenvolvedor para lidar com ações de jogo, eventos-chave, e eventos de ponteiro (se for suportado pelo dispositivo). 
São fornecidos métodos para identificar as capacidades do dispositivo e mapeamento de teclas e como as derivadas de Displayable, a classe Canvas também pode ouvir os comandos de menu.
Ao contrário de outros Displayables, para que seja possível usar a classe Canvas, teremos que implementar o método paint, pois ele é declarado como abstrato (abstract) e, por isso, precisa ser implementado.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
A Classe para Jogos em J2ME
É uma classe base utilizada em aplicações que necessitam lidar com eventos de baixo nível e emissão de gráficos na tela. 
Com o lançamento do Mobile Information Device Profile (MIDP) versão 2.0, foi introduzido o pacote javax.microedition.lcdui.game que disponibiliza cinco classes com uma grande variedade de recursos para a produção de jogos, são elas:
GameCanvas;
Layer;
Sprite;
TiledLayer;
LayerManager:
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
A Classe Sprite
Desenvolvedores em Java Micro Edition (JME) podem utilizar a classe chamada Sprite que é a representação de uma imagem na memória. Um Sprite possui capacidades para manipulação de imagem que vão além da disponível em um objeto de imagem padrão
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
O que é uma Interface
Interface é um recurso da orientação a objeto utilizado em Java que define ações que devem ser obrigatoriamente executadas, mas que cada classe pode executar de forma diferente.
Isso se deve ao fato que muitos objetos (classes) podem possuir a mesma ação (método), porém, podem executá-la de maneira diferente.
Podemos resumir como sendo um grupo de métodos que possuem seu corpo vazio. Uma Interface define apenas o que deve ser feito, não o como se faz.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Criando a chamada para o Jogo
Criando um Displayable
Crie um formulário ou qualquer outra classe de exibição que chamará o seu jogo. Ele pode receber parâmetros de inicialização do jogo .
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Criando o GameCanvas
Vamos criar uma classe GameCanvas do nosso Jogo. Crie uma classe Java e coloque as modificações sugeridas abaixo:
O Construtor precisa ter incluído o método super(boolean), que especifica se as teclas comuns deverão ser omitidas. Estes eventos de teclas ordinárias são eventos da Classe Canvas, da qual GameCanvas é baseada.
Também implementamos a interface Runnable para que possamos utilizar threads.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando o GameCanvas na Palete do NetBeans
Clique no seu Midlet, escolhendo a aba Fluxo.
Abra a Paleta
Clique com o botão direito do mouse e escolha Gerenciador de paleta
Siga os passos abaixo
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando o GameCanvas na Palete do NetBeans
As Classes GameCanvas aparecerão na caixa de dialogo.
Escolha selecionar todas e finalize.
Agora você poderá colocar a sua classe puxando da paleta normalmente.
Poderá colocar um botão de sair ou voltar como fazia anteriormente nos outros projetos.
Também poderá colocar um Título.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando o GameCanvas no Projeto
Pegar o JogoAula7 da Palete e colocar no Fluxo, como mostrado na figura abaixo.
Fazer a ligação do itemCommand para o jogoAula7, colocar um comand voltar na tela e ligar com o form.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando o início do jogo
No construtor do projeto, ainda dentro do MIDlet, é preciso iniciar a Thread JogoCanvas. 
Chame o método inicio().
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
O que temos até agora:
A Classe MIDlet
A Classe GameCanvas
A interligação entre elas.
Próximos Passos
Construir os Componentes do Jogo
Com o Construtor de Games, construir os cenários e os Sprites
Colocar os componentes no Jogo
Colocar a lógica nos personagens
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Preparando o GameCanvas
A Classe do jogo precisa das seguintes funcionalidades:
public class JogoAula7 extends GameCanvas implements Runnable{
 public JogoAula7(){ super(false); }
 public void run() {
 while(true){ //loop infinito para o jogo
 try{
 Thread.sleep(soneca);
	}catch (Exception e){ }
 }
 }
 public void inicio(){ //criação do jogo em uma nova Thread
 Thread execucao = new Thread(this);
 execucao.start();
 }
 private int soneca = 30;
}
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Criando os componentes do jogo com o GameDesign
Crie um novo Arquivo do tipo Construtor de jogos;
Este Construtor auxilia a construção de Sprites, Cenários na Camada xadrez e Cenas ou níveis.
Os Sprites (Avatar, espírito ou alma) são os elementos de movimento do seu jogo. 
 Os Cenários são construídos nas camadas xadrez.
 As cenas são as junções de todos os componentes. Também podemos chamar de níveis.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando os componentes na tela
Dentro do laço infinito, chame o atualizaTela(getGraphics());
No método início(), instancie os componentes que você quer colocar na tela.
 	 gameDesign = new GameDesign();
 lm = new LayerManager();
 try {
 bonecoSprite = gameDesign.getBonecoSpriteRg();
 fundo = gameDesign.getFundo();
 gameDesign.updateLayerManagerForNivel1(lm);
 } catch (IOException ex) {
 } 
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Colocando os componentes na tela (Cont.)
O método: atualizaTela(getGraphics);
private void atualizaTela(Graphics graphics) {
 
 lm.paint(graphics, posXPainel, posYPainel);
 bonecoSprite.setRefPixelPosition(posXBoneco, posYBoneco);
 flushGraphics();
 }
Neste ponto do projeto, criamos 4 variáveis inteiras para controlar o movimento do boneco.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Movendo o Boneco
A movimentação do boneco se dá pelo incremento ou decremento dos valores das variáveis que controlam seu movimento.
Veja o código:
 private void moveBoneco() {
 int teclaEstado = getKeyStates();
 if((teclaEstado&UP_PRESSED)!=0){
 if(posYBoneco+posYPainel>3)
 posYBoneco-=3;
 else
 if (posYPainel<0)
 posYPainel+=3;
 } else if((teclaEstado&DOWN_PRESSED)!=0){
 if(posYBoneco+posYPainel<getHeight()-20)
posYBoneco+=3;
 else
 if(posYPainel>(getHeight() -317))
 posYPainel-=3;
 }else
if((teclaEstado&LEFT_PRESSED)!=0){
 if(posXBoneco+posXPainel>3)
 posXBoneco-=3;
 else
 if (posXPainel<0)
 posXPainel+=3;
 }else if((teclaEstado&RIGHT_PRESSED)!=0){
 if(posXBoneco + posXPainel< getWidth()-20)
 posXBoneco+=3;
 else
 if(posXPainel>(getWidth() -317))
 posXPainel-=3;
 }
 }
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Concluindo
Neste Tutorial, colocamos um cenário e uma tela de fundo.
Fizemos um pequeno controle do Sprite.
O que não foi feito?
Não fizemos um controle de colisão com obstáculos.
Não colocamos lógica no controle dos Sprites.
Tema da Apresentação
CONSTRUÇÃO DE UM JOGO SIMPLES – AULA7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
*
Fim.
Tema da Apresentação

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais