Introdução a game api do java me

Post on 25-May-2015

2.025 views 0 download

Transcript of Introdução a game api do java me

Erisvaldo Gadelha Saraiva Júnior

Introdução a Game API

JavaME

Contato: erisvaldojunior@gmail.com

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!