introdução a game api do java me
TRANSCRIPT
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.
Roteiro de Aula
Introdução a Game API do JavaME
A Game API
Indo para a Prática
O Game Builder e Exemplos Adicionais
A Game API
Descrição das Classes e como usá-las
Estrutura EXPANDIDA de classes do MIDP
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.
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.
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().
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
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
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.
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().
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).
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.
Indo para a Prática
Construindo um LOOP de jogo simples com a Game API
Como funciona um
GAME LOOP?
Código Game Loop
O Game Builder e Exemplos Adicionais
A ferramenta de criação de jogos Game Builder do NetBeans e Exemplos Adicionais
What’s Your Message? OBRIGADO!