Erisvaldo Gadelha Saraiva Júnior



Introdução a Game API

JavaME

                        Contato: erisvaldojunior@gmail.com
Objetivo
                         Desenvolver jogos 2D para dispositivos móveis através do uso
                         da Game API do JavaME (MIDP 2.0).
Organize with Sections




                                                             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


                                      O Game
 A Game API   Indo para a            Builder e
                Prática              Exemplos
                                     Adicionais




                      Introdução a Game API do JavaME
A Game API



        Descrição das Classes e como usá-las
Estrutura EXPANDIDA de classes do MIDP
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.
Classe GameCanvas




                                                              Primeiro benefício em
                                                              relação     a    Canvas:
                                                              GameCanvas possui a
                                                              técnica     de   Double
                                                              Buffering implementada.
Que outros benefícios possui GameCanvas?
                    Com GameCanvas, é possível verificar as teclas pressionadas e
                    atualizar a tela a qualquer momento.
Classe GameCanvas



                         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.
E como isso funciona na prática?
                    GameCanvas implementa a interface Runnable e o LOOP do
                    jogo fica no método run().
Classe GameCanvas
A classe Layer é
               abstrata e representa
               qualquer       elemento
               visual da Game API
               (incluindo os Sprites
               citados anteriormente).

               Layer possui alguns
Classe Layer   métodos comuns a
               todos os elementos
               visuais da Game API,
               conforme mostrado no
               lado esquerdo.
Classe Sprite

            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).
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
Classe Sprite




                                                            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.
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 Sprite
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!

Introdução a game api do java me

  • 1.
    Erisvaldo Gadelha SaraivaJúnior Introdução a Game API JavaME Contato: erisvaldojunior@gmail.com
  • 2.
    Objetivo Desenvolver jogos 2D para dispositivos móveis através do uso da Game API do JavaME (MIDP 2.0). Organize with Sections 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.
  • 3.
    Roteiro de Aula O Game A Game API Indo para a Builder e Prática Exemplos Adicionais Introdução a Game API do JavaME
  • 4.
    A Game API Descrição das Classes e como usá-las
  • 5.
    Estrutura EXPANDIDA declasses do MIDP
  • 6.
    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. Classe GameCanvas Primeiro benefício em relação a Canvas: GameCanvas possui a técnica de Double Buffering implementada.
  • 7.
    Que outros benefíciospossui GameCanvas? Com GameCanvas, é possível verificar as teclas pressionadas e atualizar a tela a qualquer momento. Classe GameCanvas 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.
  • 8.
    E como issofunciona na prática? GameCanvas implementa a interface Runnable e o LOOP do jogo fica no método run(). Classe GameCanvas
  • 9.
    A classe Layeré abstrata e representa qualquer elemento visual da Game API (incluindo os Sprites citados anteriormente). Layer possui alguns Classe Layer métodos comuns a todos os elementos visuais da Game API, conforme mostrado no lado esquerdo.
  • 10.
    Classe Sprite 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).
  • 11.
    Como funciona aquestã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 Classe Sprite 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.
  • 12.
    E quanto àstransformações? As transformações são realizadas pelo método setTransform() e se baseiam em um ponto de referência definido por setRefPixelPosition(). Classe Sprite
  • 13.
    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).
  • 14.
    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.
  • 15.
    Indo para aPrática Construindo um LOOP de jogo simples com a Game API
  • 16.
  • 17.
  • 18.
    O Game Buildere Exemplos Adicionais A ferramenta de criação de jogos Game Builder do NetBeans e Exemplos Adicionais
  • 19.