Desenvolvendo jogos com LibGDX com LibGDX

Slides:



Advertisements
Apresentações semelhantes
Jogos em Lua com LÖVE Hamilton Lima Jr. MediaLab – UFF Lua workshop 2009.
Advertisements

Fundamento de computação gráfica
Java: Comandos Básicos
2003 Prentice Hall, Inc. All rights reserved. 1 Ambientes de Programação C++ Tópicos 1.1 Introdução 1.2 Compiladores C++ 1.3IDEs C++ 1.4Editores de código.
Ronaldo Celso Messias Correia
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Grupo Paralelismo – Unesp RC
SQL procedural – parte 2.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
O que é XtremWeb(XW)? Projeto de pesquisa relacionado a light-weight Grids. Plataforma Open Source para a elaboração de grades baseadas em PCs, desenvolvida.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Interfaces Gráficas (GUIs) em Java usando Swing Parte II - Tratando Eventos Prof. Ricardo Linden GUI em Java - parte II.
Servidores e Programação Web Redes de Computadores.
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
CES-41 COMPILADORES Capítulo I Introdução.
Computação Gráfica: Possibilidades e Desafios
X3D - AUTORIA Jorge Ferreira Franco Laboratório de Sistemas Integráveis - LSI - USP Disciplina - Realidade Virtual.
III – Uso da Infraestrutura Tecnológica Tecnologias de Informação e Comunicação em Desenvolvimento de Produtos III – Uso da Infraestrutura Tecnológica.
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
MAC499 - Trabalho de Formatura Supervisionado Sistema de Reconhecimento de Escrita On-Line.
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
LINGUAGEM C X LINGUAGEM ASSEMBLY
Os alunos, ao final da 2ª série do Ciclo I, deverão ser capazes de: Participar de situações de intercâmbio oral que requeiram ouvir com atenção, formular.
1 SEGET- outubro de 2007 Antes do Second Life e do GoogleEarth: A utilização da simulação baseada na web para o estudo de processos operacionais Paulo.
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Dispositivos de entrada e saida
Um framework para desenvolvimento de aplicações web Lucas Klassmann,
O Portal do Estudante de Computação
Renderização de cenas por traçado de raios na Placa Gráfica Fabiano Segadaes Romeiro Sistemas Gráficos 3D IMPA.
Usando Java no Oracle Por Edson Almeida Junior
Marcelo Korjenioski. Venda crescente de dispositivos com sistema operacional Android em 2011 favorecem o desenvolvimento para a plataforma. Jogos casuais.
Caminho certo.
Técnicas de Programação A Professora Jandira Guenka Palma ERNESTO YUITI SAITO HAYATO FUJII MARCOS OKAMURA RODRIGUES 2009.
HandyBoard & Interactive C. HandyBoard Especificações –Clock de 2 MHz –32 Kb de RAM –7 entradas para sensores analógicos –9 entradas para sensores digitais.
Desenvolvimento de Jogos para Iphone
Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é.
Information visualization toolkit.  Framework extensível  Criação de Softwares interativos  Free license.
Instituto Politécnico de Setúbal Escola Superior de Educação Comunicação Social 1º Ano Junho 2011 Google Calendar.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
Marlon Novas ferramentas da Nokia para a plataforma S40 1.
Projeto Shadow Struggles 2013
Raquel Costa nº Pedro Rodrigues nº Renato Sousa nº
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Ciclo de Seminarios Técnicos – PET Computação Quarta-Feira - 15/06/2011
PROGRAMAÇÃO DE DISPOSITIVO ANDROID Arte Digital – – ECO/UFRJ.
Caio Paes, Demontiê Junior, Tales Pimentel
Tecnologias para Mobilidade Prof. Cristina Morishita
Uso de celular na escola
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Isabel Cafezeiro
B EM V INDOS DREAMWEAVER+PHP+M Y SQL Professor: Engº Fernando Miranda.
MJ3A-PA - UM MOTOR DE JOGOS 3D PARA ANDROID COM PERSONAGENS ARTICULADOS Acadêmico: André William Prade Hildinger Orientador: Dalton Solano dos Reis.
Revisão de Lógica de Programação e Desenvolvimento Web
MAPEAMENTO GEOREFERENCIADO DAS UNIDADES ORGANIZACIONAIS DA UFPI
Algoritmos e Estruturas de Dados I Prof. Dsc. Alex F. V. Machado
Linguagem PHP Esp. Marcelo Mendes Manaus – Março 2016.
SQLite SQLite é um banco de dados Open Source. Ele suporta recursos de banco de dados relacionais padrão, como sintaxe SQL, transações, etc. SQLite suporta.
DESENVOLVIMENTO DE PROGRAMAS
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Source: Tela.
ANDROID.
Lucas Van Langendonck – 1BCC
Quero Agradecer.
Rosemary Silveira Filgueiras Melo
DSI – Desenvolvimento de Sistemas Inteligentes
ORIENTAÇÕES PARA O JOGO GRANDES NAVEGAÇÕES.
Transcrição da apresentação:

Desenvolvendo jogos com LibGDX com LibGDX Matheus Bodo @matheusbodo http://blog.matheusbodo.com

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

Utiliza a linguagem Java -Continua em desenvolvimento

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.

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

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

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

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.

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

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.

Gráficos

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.

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.

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

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.

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

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.

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

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

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.

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

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

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

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

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

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

Exemplo: Bricks

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

Dúvidas? bodo.matheus@gmail.com @matheusbodo http://blog.matheusbodo.com