SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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!

Mais conteúdo relacionado

Semelhante a Introdução a game api do java me

Criando jogos digitais em java
Criando jogos digitais em javaCriando jogos digitais em java
Criando jogos digitais em javaMichel Montenegro
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersiMasters
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Práticodanielfc
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeansokashi24
 
Jogo para dispositivos móveis
Jogo para dispositivos móveisJogo para dispositivos móveis
Jogo para dispositivos móveisCristiano Agosti
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 
Java Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOJava Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOdanielfc
 
Processo de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfProcesso de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfJean Marie Jhon
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandesMayara Fernandes
 
Apostila after effects
Apostila after effectsApostila after effects
Apostila after effectsBomSoul
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...PotiLivre Sobrenome
 
Edgecam operações
Edgecam operaçõesEdgecam operações
Edgecam operaçõesclaytonmotta
 

Semelhante a Introdução a game api do java me (20)

JavaME
JavaMEJavaME
JavaME
 
Criando jogos digitais em java
Criando jogos digitais em javaCriando jogos digitais em java
Criando jogos digitais em java
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game Developers
 
Game API – Java ME Série 40
Game API – Java ME Série 40Game API – Java ME Série 40
Game API – Java ME Série 40
 
Guia xna
Guia xnaGuia xna
Guia xna
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Prático
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeans
 
Jogo para dispositivos móveis
Jogo para dispositivos móveisJogo para dispositivos móveis
Jogo para dispositivos móveis
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Java Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOJava Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãO
 
Processo de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfProcesso de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdf
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandes
 
Apostila after effects
Apostila after effectsApostila after effects
Apostila after effects
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Edgecam operações
Edgecam operaçõesEdgecam operações
Edgecam operações
 

Mais de Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 

Introdução a game api do java me

  • 1. Erisvaldo Gadelha Saraiva Jú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 de classes 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í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.
  • 8. E como isso funciona 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 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.
  • 12. 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
  • 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 a Prática Construindo um LOOP de jogo simples com a Game API
  • 16. Como funciona um GAME LOOP?
  • 18. O Game Builder e Exemplos Adicionais A ferramenta de criação de jogos Game Builder do NetBeans e Exemplos Adicionais