Download - Introdução a game api do java me
![Page 2: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/2.jpg)
Org
aniz
e w
ith
Se
ctio
ns
Objetivo Desenvolver jogos 2D para dispositivos móveis através do uso da Game API do JavaME (MIDP 2.0).
Imagens do SilvesterMob, RPG educacional para o aprendizado de Geografia desenvolvido no LabTEVE (Laboratório de Tecnologias para o Ensino Virtual e Estatística), UFPB.
![Page 3: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/3.jpg)
Roteiro de Aula
Introdução a Game API do JavaME
A Game API
Indo para a Prática
O Game Builder e Exemplos Adicionais
![Page 4: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/4.jpg)
A Game API
Descrição das Classes e como usá-las
![Page 5: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/5.jpg)
Estrutura EXPANDIDA de classes do MIDP
![Page 6: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/6.jpg)
Cla
sse
Gam
eC
anva
s O que é a classe GameCanvas? Trata-se de uma especialização da classe Canvas que possui uma série de melhorias para o desenvolvimento de jogos.
Primeiro benefício em relação a Canvas: GameCanvas possui a técnica de Double Buffering implementada.
![Page 7: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/7.jpg)
Cla
sse
Gam
eC
anva
s Que outros benefícios possui GameCanvas? Com GameCanvas, é possível verificar as teclas pressionadas e atualizar a tela a qualquer momento.
GameCanvas, ao contrário de Canvas, não força o programador a utilizar os métodos paint() e keyPressed() para desenhar na tela e verificar as teclas pressionadas, respectivamente. Com GameCanvas, o programador tem liberdade para atualizar a tela e/ou verificar teclas pressionadas a qualquer momento do LOOP do jogo. Além disso, com GameCanvas é possível detectar várias teclas pressionadas ao mesmo tempo, ao contrário de Canvas.
![Page 8: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/8.jpg)
Cla
sse
Gam
eC
anva
s E como isso funciona na prática? GameCanvas implementa a interface Runnable e o LOOP do jogo fica no método run().
![Page 9: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/9.jpg)
A classe Layer é abstrata e representa qualquer elemento visual da Game API (incluindo os Sprites citados anteriormente). Layer possui alguns métodos comuns a todos os elementos visuais da Game API, conforme mostrado no lado esquerdo.
Classe Layer
![Page 10: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/10.jpg)
Classe que representa uma imagem (geralmente animada) no jogo, como por exemplo os personagens, arbustos, itens, etc;
A sua principal característica é o suporte a frames e animação;
Possui detecção de colisão já implementada, tanto por caixa quanto pixel-a-pixel. Suporta algumas transformações sobre a imagem (Espelhamento, giro 90°, 180°, 270°, etc).
Classe Sprite
![Page 11: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/11.jpg)
Cla
sse
Sp
rite
Como funciona a questão dos Frames e a Animação? A imagem pode ser dividida em N partes, sendo cada uma dessas partes um frame. Todos os frames precisam ter o mesmo tamanho.
A navegação entre os frames pode ser feita através dos métodos nextFrame(), prevFrame() e setFrame(). Esse último recebe como parâmetro o número do frame que deve ser utilizado no momento.
![Page 12: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/12.jpg)
Cla
sse
Sp
rite
E quanto às transformações? As transformações são realizadas pelo método setTransform() e se baseiam em um ponto de referência definido por setRefPixelPosition().
![Page 13: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/13.jpg)
Classe TiledLayer
Usada geralmente para representar mapas, utilizando um array bidimensional com índices de imagens. Suporta tiles animadas (efeito de água se movimentando, arbusto sob efeito de evento, etc).
![Page 14: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/14.jpg)
Classe LayerManager
Responsável por gerenciar todos os Layers (camadas) do jogo. Pode-se definir a posição de cada camada, adicionar ou remover camadas, etc.
![Page 15: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/15.jpg)
Indo para a Prática
Construindo um LOOP de jogo simples com a Game API
![Page 16: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/16.jpg)
Como funciona um
GAME LOOP?
![Page 17: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/17.jpg)
Código Game Loop
![Page 18: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/18.jpg)
O Game Builder e Exemplos Adicionais
A ferramenta de criação de jogos Game Builder do NetBeans e Exemplos Adicionais
![Page 19: Introdução a game api do java me](https://reader030.vdocuments.net/reader030/viewer/2022020101/55621879d8b42af2128b5488/html5/thumbnails/19.jpg)
What’s Your Message? OBRIGADO!