SlideShare una empresa de Scribd logo
1 de 27
Games - V1


{

    Dia 2
Introdução



Jogos têm um conceito diferente de uma aplicação
“comum”


Para se criar um jogo, é necessário um motor de
geração de gráficos e comportamentos (engine).
Introdução
     Existem diversas engines para Android
Introdução




             Corona


             jMonkey Engine




                              Cactus2D
AndEngine




Nicholas Gramlich
Criar um jogo não é fácil.

Requer estudo e dedicação.
Primeiro passo: tenha uma idéia e um objetivo

Segundo passo: tenha um amigo Designer Gráfico

Terceiro passo: coloque a mão-na-massa. Bora
programar




http://www.ehow.com.br/jogos-celular-como_7191/
Introdução

                       Conceitos Android

Para se ter uma tela, é necessário ter uma Activity

Para se ter uma Activity, é necessário ter um layout.xml

O layout.xml deve ser declarado no arquivo AndroidManifest.xml
Filme ?
Introdução
       Componentes importantes em um jogo com AndEngine




Camera        Scene (ação)                          Sprite


                                 Rectangle
                       Sprite



                                         Text



              Sprite
Introdução
        Métodos importantes em um jogo com AndEngine




                              Classe
                            SimpleBaseGameActivity


        Luz ...                 onCreateResources()

        Câmera ... onCreateEngineOptions()
        Ação ...                       onCreateScene()
Passo 1 - Objetivo do jogo
3 horas depois ... (já é um começo)
No dia seguinte ...
Fase 1 : elementos principais



                              TrueType Font
                                              LINE

                     Sprite Modifier
                     MoveModifier
     Sprite         RotationModifier
                     JumpModifier



                 Physics Box2D
     TouchArea

    SCENE
... MainActivity extends SimpleBaseGameActivity {

Adicione os métodos:



onCreateEngineOptions() //Camera


onCreateResources() //Luz


onCreateScene() //Ação
... MainActivity extends SimpleBaseGameActivity {

        private int LARGURA = 800;
        private int ALTURA = 480;
        private Scene cena = null;
        private ITextureRegion regiaoBackground = null; private Font fonte =
null;
        private Text txPontuacao = null;
        private int placar = 0;
        private ITextureRegion regiaoMosca = null;
@Override
public EngineOptions onCreateEngineOptions(){

    Camera camera = new Camera(0, 0, LARGURA, ALTURA);

  EngineOptions opcoes = new EngineOptions(true,
ScreenOrientation.LANDSCAPE_FIXED,
         new RatioResolutionPolicy(LARGURA, ALTURA),
     camera);

    opcoes.getAudioOptions().setNeedsSound(true);

    opcoes.setWakeLockOptions(WakeLockOptions.SCREEN_ON);

    return opcoes;
}
Textura é a imagem na memória
Região define um retângulo para a
                                    gráfica. No Android, a largura e
 Textura. É usado para o sistema
                                    altura deve ser em potência de 2
       conhecer os Sprites.
                                              (32, 64, 128 ...)
onCreateResources()



ITexture textura = new BitmapTexture(getTextureManager(),
      new IInputStreamOpener() {
      @Override
      public InputStream open() throws IOException {
           return getAssets().open("gfx/background.png");
      }
});

textura.load(); //#partiu memória

regiaoBackground = TextureRegionFactory.extractFromTexture(textura);




                                                                       BACKGROUND
ITexture textura = new BitmapTextureAtlas(getTextureManager(),256,256);

fonte = FontFactory.createFromAsset(getFontManager(),
           textura,
           getAssets(),
          "font/amsterdam.ttf",
          34f,
          true,
          Color.RED_ARGB_PACKED_INT
);

fonte.load(); //run to memory, Forest !

txPontuacao = new Text(LARGURA-100, 10,
fonte,
"0",
10 ,
getVertexBufferObjectManager());

                                                                          Fonte
BitmapTextureAtlas texturaBitmap = new BitmapTextureAtlas(getTextureManager(),64,64);




texturaBitmap.load(); //astalavista, baby !
                                                                 Aff ... Pra q ?

regiaoMosca = BitmapTextureAtlasTextureRegionFactory.createFromAsset(
      texturaBitmap,
      this,
     "gfx/mosca.png",
     0, 0
);




                                                                                        Mosca
onCreateScene()
cena = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, regiaoBackground, getVertexBufferObjectManager());
cena.attachChild(backgroundSprite);

cena.attachChild(txPontuacao);

Text texto = new Text(10, 10, fonte, ”KillingMoscas", getVertexBufferObjectManager());
cena.attachChild(texto);

Line linha= new Line(
         0, texto.getY() + 40, //Onde começa a linha ? (ponta 1)
     LARGURA, texto.getY() + 40, //Onde termina a linha ? (ponta 2)
     getVertexBufferObjectManager());

linha.setColor(Color.YELLOW);
linha.setLineWidth(12);
cena.attachChild(linha);




                                                                                                Cenário
Introdução



             Continua no código-fonte …

Más contenido relacionado

La actualidad más candente

Criando jogos com python e pygame 2 aula
Criando jogos com python e pygame 2 aulaCriando jogos com python e pygame 2 aula
Criando jogos com python e pygame 2 aulaDiego Lopes
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Passo a passo com o vaca5
Passo a passo com o vaca5Passo a passo com o vaca5
Passo a passo com o vaca5Hamilton Lima
 
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesGrafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesJulio Menezes
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Tchelinux
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamAndré Espeiorin
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 

La actualidad más candente (14)

Criando jogos com python e pygame 2 aula
Criando jogos com python e pygame 2 aulaCriando jogos com python e pygame 2 aula
Criando jogos com python e pygame 2 aula
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Passo a passo com o vaca5
Passo a passo com o vaca5Passo a passo com o vaca5
Passo a passo com o vaca5
 
Desenvolvimento iOS
Desenvolvimento iOSDesenvolvimento iOS
Desenvolvimento iOS
 
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesGrafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
 
MRO predict
MRO predictMRO predict
MRO predict
 
QtQuick - WSL II
QtQuick - WSL IIQtQuick - WSL II
QtQuick - WSL II
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Java Script
Java ScriptJava Script
Java Script
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 

Similar a Criando um jogo simples com AndEngine

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
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developersjuliocoopergames
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaHeitor Carlos
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...INdT
 
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
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5Willian Molinari
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowGuilherme Campos
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowDevMT
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKBruno Cicanci
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-androidAlberto Souza
 
Trabalho em greenfoot
Trabalho em greenfootTrabalho em greenfoot
Trabalho em greenfootVitor Faria
 
Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Odair Bonin Borges
 
IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus PartyJosé Farias
 
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataformaDesenvolvendo games multiplataforma
Desenvolvendo games multiplataformaAndré Santee
 
Ubiquitous Language - Portugues
Ubiquitous Language - PortuguesUbiquitous Language - Portugues
Ubiquitous Language - PortuguesAlline Oliveira
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 

Similar a Criando um jogo simples com AndEngine (20)

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
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developers
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - Sparta
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
 
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
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
 
Minicurso pygame
Minicurso pygameMinicurso pygame
Minicurso pygame
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDK
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-android
 
Idez
IdezIdez
Idez
 
Trabalho em greenfoot
Trabalho em greenfootTrabalho em greenfoot
Trabalho em greenfoot
 
Guia xna
Guia xnaGuia xna
Guia xna
 
Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1Oficina Android - Games com AndEngine - Dia 1
Oficina Android - Games com AndEngine - Dia 1
 
IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus Party
 
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataformaDesenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
 
Ubiquitous Language - Portugues
Ubiquitous Language - PortuguesUbiquitous Language - Portugues
Ubiquitous Language - Portugues
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 

Criando um jogo simples com AndEngine

  • 1. Games - V1 { Dia 2
  • 2. Introdução Jogos têm um conceito diferente de uma aplicação “comum” Para se criar um jogo, é necessário um motor de geração de gráficos e comportamentos (engine).
  • 3. Introdução Existem diversas engines para Android
  • 4. Introdução Corona jMonkey Engine Cactus2D
  • 6. Criar um jogo não é fácil. Requer estudo e dedicação.
  • 7. Primeiro passo: tenha uma idéia e um objetivo Segundo passo: tenha um amigo Designer Gráfico Terceiro passo: coloque a mão-na-massa. Bora programar http://www.ehow.com.br/jogos-celular-como_7191/
  • 8. Introdução Conceitos Android Para se ter uma tela, é necessário ter uma Activity Para se ter uma Activity, é necessário ter um layout.xml O layout.xml deve ser declarado no arquivo AndroidManifest.xml
  • 10. Introdução Componentes importantes em um jogo com AndEngine Camera Scene (ação) Sprite Rectangle Sprite Text Sprite
  • 11. Introdução Métodos importantes em um jogo com AndEngine Classe SimpleBaseGameActivity Luz ... onCreateResources() Câmera ... onCreateEngineOptions() Ação ... onCreateScene()
  • 12. Passo 1 - Objetivo do jogo
  • 13. 3 horas depois ... (já é um começo)
  • 15.
  • 16.
  • 17.
  • 18. Fase 1 : elementos principais TrueType Font LINE Sprite Modifier MoveModifier Sprite RotationModifier JumpModifier Physics Box2D TouchArea SCENE
  • 19. ... MainActivity extends SimpleBaseGameActivity { Adicione os métodos: onCreateEngineOptions() //Camera onCreateResources() //Luz onCreateScene() //Ação
  • 20. ... MainActivity extends SimpleBaseGameActivity { private int LARGURA = 800; private int ALTURA = 480; private Scene cena = null; private ITextureRegion regiaoBackground = null; private Font fonte = null; private Text txPontuacao = null; private int placar = 0; private ITextureRegion regiaoMosca = null;
  • 21. @Override public EngineOptions onCreateEngineOptions(){ Camera camera = new Camera(0, 0, LARGURA, ALTURA); EngineOptions opcoes = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(LARGURA, ALTURA), camera); opcoes.getAudioOptions().setNeedsSound(true); opcoes.setWakeLockOptions(WakeLockOptions.SCREEN_ON); return opcoes; }
  • 22. Textura é a imagem na memória Região define um retângulo para a gráfica. No Android, a largura e Textura. É usado para o sistema altura deve ser em potência de 2 conhecer os Sprites. (32, 64, 128 ...)
  • 23. onCreateResources() ITexture textura = new BitmapTexture(getTextureManager(), new IInputStreamOpener() { @Override public InputStream open() throws IOException { return getAssets().open("gfx/background.png"); } }); textura.load(); //#partiu memória regiaoBackground = TextureRegionFactory.extractFromTexture(textura); BACKGROUND
  • 24. ITexture textura = new BitmapTextureAtlas(getTextureManager(),256,256); fonte = FontFactory.createFromAsset(getFontManager(), textura, getAssets(), "font/amsterdam.ttf", 34f, true, Color.RED_ARGB_PACKED_INT ); fonte.load(); //run to memory, Forest ! txPontuacao = new Text(LARGURA-100, 10, fonte, "0", 10 , getVertexBufferObjectManager()); Fonte
  • 25. BitmapTextureAtlas texturaBitmap = new BitmapTextureAtlas(getTextureManager(),64,64); texturaBitmap.load(); //astalavista, baby ! Aff ... Pra q ? regiaoMosca = BitmapTextureAtlasTextureRegionFactory.createFromAsset( texturaBitmap, this, "gfx/mosca.png", 0, 0 ); Mosca
  • 26. onCreateScene() cena = new Scene(); Sprite backgroundSprite = new Sprite(0, 0, regiaoBackground, getVertexBufferObjectManager()); cena.attachChild(backgroundSprite); cena.attachChild(txPontuacao); Text texto = new Text(10, 10, fonte, ”KillingMoscas", getVertexBufferObjectManager()); cena.attachChild(texto); Line linha= new Line( 0, texto.getY() + 40, //Onde começa a linha ? (ponta 1) LARGURA, texto.getY() + 40, //Onde termina a linha ? (ponta 2) getVertexBufferObjectManager()); linha.setColor(Color.YELLOW); linha.setLineWidth(12); cena.attachChild(linha); Cenário
  • 27. Introdução Continua no código-fonte …