A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvendo jogos com LibGDX com LibGDX

Apresentações semelhantes


Apresentação em tema: "Desenvolvendo jogos com LibGDX com LibGDX"— Transcrição da apresentação:

1 Desenvolvendo jogos com LibGDX com LibGDX
Matheus Bodo @matheusbodo

2 LibGDX -Criado por Mario Zechner
-Mais de 50 jogos publicados no Android Market, segundo o site oficial.

3 Utiliza a linguagem Java
-Continua em desenvolvimento

4 Multi-plataforma -Aumenta a produtividade, pois não é necessário fazer deploy no celular toda hora. -Estão trabalhando no suporte para iOS através de IKVM e MonoTouch.

5 Open Source -Vantagens essenciais de ser open source: estudar o código e possibilidade de fazer alterações caso seja necessário. -Boa documentação -Vários exemplos de jogos no repositório oficial

6 Performance Boa performance: -Open GL
-Otimizações usando código nativo -Evita gerar Garbage Collector

7 Fácil de usar Fácil de usar -API intuitiva
-De novo: boa documentação (Wiki, JavaDocs, Forum, Blog, Twitter)

8 Arquitetura do LibGDX -Arquitetura do LibGDX
-Application: cuida do ciclo de vida da aplicação -Files: leitura e escrita em arquivos. Não vai ser coberto na apresentação. -Audio: provê funcionalidades para utilizar sons nos jogos -Input: permite acessar dados de entrada do usuário -Graphics: abstração de gráficos usando OpenGL -Outros módulos, como Box2D.

9 Ciclo de Vida Ciclo de vida de um jogo
-Create: carregar recursos na memória -Render: chamada o maior número de vezes possível (evite alocar objetos aqui) -Pause: salvar o estado do jogo -Dispose: desalocar recursos

10 Game e Screen -Principais classes do módulo Application
Game: implementação default de ApplicationListener Screen: abstração para as várias telas do jogo Importante: render é chamado a maior quantidade de vezes possível, por isso deltaTime é importante para fazer as coisas dependerem do tempo.

11 Gráficos

12 Câmera -Similar à uma câmera filmadora
-Tem o papel de capturar imagens da cena para a tela. -Funções: mover, zoom -Conversão de coordenadas -Na cena, as coordenadas crescem da esquerda para a direita, de baixo para cima.

13 Viewport -Necessário definir o viewport na câmera.
-Viewport: região retangular onde a cena é projetada. Não é necessariamente do mesmo tamano da tela. -A unidade de medida é a mesma utilizada para definir a cena.

14 Câmera PerspectiveCamera OrthographicCamera
-PerspectiveCamera: 3D. A cena é projetada no viewport em relação a um PONTO observador. -OrtographicCamera: 2D. A cena é projetada no viewport em relação a um plano infinito observador. PerspectiveCamera OrthographicCamera

15 Texture -Texture: uma imagem carregada na memória.
-Principal responsável pelo tamanho da aplicação gerada. -Dimensão em potência de 2 -Sugestão: dividir em vários arquivos, mas não ultrapassar 2048 pixels, para tentar otimizar a performance do Open GL. -Dividir os sprites nas texturas baseados nas telas que vão ser usados.

16 SpriteBatch -Classe utilitária utilizada para desenhar sprites na cena. -Acumula comandos de desenho para otimizar o uso do OpenGL. -A posição x,y one a imagem é desenhada no canto bottom-left

17 Imagens -TextureRegion: região retangular de uma textura.
-Sprite: tipo especial de TextureRegion que guarda a posição, tamanho, eixo de origem e rotação -Animation: conjunto de TextureRegions. A TextureRegion que vai ser desenhada depende do tempo do jogo.

18 Textos _BitmapFont: lê informações de fonte dos arquivos .fnt e .png
-TextBounds: calcula o tamanho em pixels do texto nas configurações atuais da fonte. -Posição x,y do texto desenhado é a top-left

19 Audio -Também muito importante -Deixa o jogo muito mais rico
-Pode prover uma experiência de uso muito boa ao jogador. -Formatos suportados: mp3, ogg e wave

20 Music - Music: Ideal para musica de fundo (arquivos de som grandes). Som é carregado de acordo com a necessidade. O arquivo não fica inteiro na memória. -Cuidado com o tamanho dos sons. Pode aumentar significativamente o tamanho da aplicação e causar problemas de memória.

21 Sound -Sound: Ideal para efeitos sonoros (arquivos pequenos). Fica carregado inteiro na memória.

22 Entrada de Dados -Receber a interação do jogador

23 InputProcessor -Interface utilizada para tratar input de dados.
-Outras entradas possíveis: acelerômetro e bússola através de Gdx.input

24 Mouse e Touch touchDown(int x, int y, int pointer, int button)
touchUp(int x, int y, int pointer, int button) touchDragged(int x, int y, int pointer) touchMoved(int x, int y) scrolled(int amount) -Eventos tratados pelo InputProcessor -TouchMoved e Scrolled não são chamados no Android

25 Mouse e Touch touchDown(int x, int y, int pointer, int button)
touchUp(int x, int y, int pointer, int button) touchDragged(int x, int y, int pointer) touchMoved(int x, int y) scrolled(int amount) -Eventos tratados pelo InputProcessor -TouchMoved e Scrolled não são chamados no Android

26 Keyboard keyDown(int keycode) keyUp(int keycode)
keyTyped(char character) -Key typed: chamado várias vezes enquanto a tecla estiver pressionada

27 Exemplo: Bricks

28 Mais informações http://libgdx.badlogicgames.com/
ZECHNER, Mario. Beginning Android Games. Apress, 2011.

29 Dúvidas? bodo.matheus@gmail.com @matheusbodo


Carregar ppt "Desenvolvendo jogos com LibGDX com LibGDX"

Apresentações semelhantes


Anúncios Google