Baixe o app para aproveitar ainda mais
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
Compartilhar