Programação Gráfica Parte 3 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Documentos relacionados
Programação Gráfica Parte 2 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Programação Gráfica Parte 3 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano

SCC0504 Programação Orientada a Objetos Prof. Luiz Eduardo Virgilio da Silva / Estevam Arantes (Monitor) Projeto

Trabalho GA - Editor de Cenário Isométrico

Ambiente de programação

Programação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano

Introdução à Engenharia ENG1000

Introdução a Programação de Jogos

Introdução à Engenharia ENG1000

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Font size Animation FACULDADE DE TECNOLOGIA SENAC PELOTAS

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Edição Visual Imagens, Tilemaps e Sprites 2006 PUCPR Tutoria de Jogos 1º Ano

AULA 2 Planos Vistas e Temas

Criação de Animação com Sprite com HTML CANVAS

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Aula Prática Criando Views e Controles

Computação II Orientação a Objetos

Introdução ao HTML5 Canvas

No sub menu de Formatos temos algumas opções a trabalhar. Vejamos cada uma

Material reorganizado e adaptado por: Suéllen Rodolfo Martinelli. Disponibilizado em:

Programação Orientada a Objetos

Tecnologias de Jogos de Vídeo

Pacotes Organizando suas classes e bibliotecas

Aula 04 Tipos de arquivos e Fireworks

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

Computação II Orientação a Objetos

PROGRAMAÇÃO PARA INTERNET RICA FUNÇÕES E EVENTOS EM ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO PARA INTERNET RICA EVENTOS EM ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

APÊNDICE D O Projeto do javaplay

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Prezado(a) Aluno(a), 1. Conhecendo a Caixa de Ferramentas. 2. Trabalhando com textos. UnidadeB

Documentação. Java First-Tier: Aplicações. Documentação com javadoc. Comentários especiais. Marcas Especiais. Exemplo. Finalidade das marcas

PROGRAMAÇÃO PARA INTERNET RICA FUNÇÕES E EVENTOS EM ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Guia do Instrutor Jogo da Bruxa

Introdução à Informática. Aula 07 MS WORD. Prof. Fábio Nelson

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Unidade 3: Classes em Java Para Programadores C Classes, Objetos e Tratamento de Erros Prof. Daniel Caetano

Capítulo 4 Criando uma animação

Introdução à Programação C

Processamento Digital de Imagens

Lógica de Jogos. Conteúdo

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

CONTRUCT 2. Tainá Medeiros

Computação II Orientação a Objetos

LISTA DE EXERCÍCIOS Prof. Daniel de Souza Gomes Aula extra 26/03/2011

Corel Draw X7. Modulo 1 Aula 1 Conhecendo o Corel Draw Desenhando com formas básicas

Recursos Complementares (Tabelas e Formulários)

Animação com o Director Marcelo Prioste

Processamento Digital de Imagens

Computação II Orientação a Objetos

Animação de Imagens. Manual do usuário. DSA/CPTEC/INPE 27 de abril de 2016 Versão 1.0

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Síntese da aula anterior

Computação II Orientação a Objetos

Computação II (MAB 225)

Ferramentas Web, Web 2.0 e Software Livre em EVT

PROGRAMAÇÃO PARA INTERNET RICA EVENTOS EM ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

Estrutura de Dados. Introduc a o e Alocac a o de Memo ria. Vilson Heck Junior. Instituto Federal de Santa Catarina

Jogos baseados em plataforma (parte 1)

Técnicas de Programação II

Renderização Fácil com o DataCAD

Prof. Flávio Barros. Planilha Eletrônica

APP INVENTOR. APP INVENTOR Exercício 1

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

POO29004 Programação Orientada a Objetos

PROGRAMAÇÃO PARA INTERNET. Prof.: Jean Carlo Mendes

Computação II Orientação a Objetos

Classes e Objetos POO

COLÉGIO OBJETIVO JÚNIOR

Escrito por Maicris Fernandes Qua, 11 de Dezembro de :15 - Última atualização Qua, 11 de Dezembro de :20

05 Como utilizar POO no ambiente gráfico do C#?

Programação para Web HTML - Parte 2

SCC0504 Programação Orientada a Objetos Projeto

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

Tile palette Com os sprites devidamente importados podemos criar a nossa paleta. Acesse no menu WINDOW >> TILE PALETTE.

Programação Gráfica Parte 1 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano

Escrito por: Ramon Andrade. Criando Etiquetas Personalizadas no Icarus

Utilização da Grelha Grid

Módulo I. Desejamos boa sorte e bom estudo! Em caso de dúvidas, contate-nos pelo site Atenciosamente Equipe Cursos 24 Horas

Introdução ao Desenvolvimento de Jogos BCT - UERN

Flash. Prof. Luiz Claudio Ferreira de Souza.

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Escola Olímpio Curso: Técnico em Informática. Introdução e instalação

The Helium Frog Animator Manual e Guia de exploração do The Helium Frog Animator para utilização em contexto de Educação Visual e Tecnoló gica

F E B A C. Exercício de Fixação 3. FACULDADE DE EDUCAÇÃO DE BACABAL FEBAC Credenciamento MEC/Portaria: 472/07 Resolução: 80/07

Laboratório de Programação com Games. Conteúdo: Professor: - Conceitos de programação com Python. Instituto de Computação - UFF

XNA. Introdução ao XNA

Roteiro 01. Professor: Prof. M.Sc. Odilon Corrêa da Silva. Curso: Engenharia de Computação. Disciplina: Programação para WEB

Prática 14 Componentes II

HTML Página 23. Índice

Ao projeto inciado na aula anterior, faça as seguintes alterações:

Projeto e Computação Gráfica. Pedro Mitsuo Shiroma

Hot Spots Windows 8 Última atualização, 12 de Novembro de 2013

Transcrição:

Programação Gráfica Parte 3 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/

AVISO IMPORTANTE!! Esta versão é dedicada exclusivamente para o cursos de Sistemas de Informação. Para a versão de Ciência da Computação e Engenharia da Computação, utilizando C, pegue o arquivo correspondente e participe da aula no horário adequado. PUCPR - CCET 2

Entrega da 2ª Parcial Datas importantes: 12 a 17 de Junho. Relatório impresso contendo: Código fonte do protótipo da interface. Impressão no relatório dos recursos gráficos da fase/jogo (tilemaps, sprites, cenários de fundos, protótipo, etc). Discussão do uso dos recursos com a lógica do jogo no terceiro bimestre. Defesa em laboratório do protótipo e entrega do relatório com a equipe completa. PUCPR - CCET 3

Entrega da 2ª Parcial Por recursos gráficos,entende-se que neste bimestre já teremos: 1. TODOS os sprites necessários para o demo. 2. TODAS as telas de fundo/tilemaps. 3. TODAS as fontes. Logo, espera-se que o relatório inclua TODOS estes elementos. PUCPR - CCET 4

Conteúdo Carregando Imagens Desenhando Imagens Criando Sprites Desenhando um Sprite Animando o Sprite PUCPR - CCET 5

Carregando Imagens Imagens para Midlets J2ME devem estar no formato PNG. Este formato é escolhido por permitir transparência, ser aberto e por possuir boa compressão. Em geral, para reduzir o tamanho das imagens, utilizamos imagens com 256 cores. PUCPR - CCET 6

Carregando Imagens Imagens são SEMPRE carregadas a partir do diretório raiz do Midlet. Durante a fase de desenvolvimento, as imagens ficam no diretório res da aplicação. Assim, TODAS imagens (sem exceção) utilizas pela aplicação devem ficar neste diretório. PUCPR - CCET 7

Carregando Imagens Imagens são representadas em J2ME pela classe Image. Esta classe também nos fornece 6 (seis) métodos estáticos diferentes para criar imagens. Porém, nos interessa UM deles: public static Image createimage(string name) throws IOException PUCPR - CCET 8

Carregando Imagens Este método carrega uma imagem a partir do arquivo JAR (ou diretório res do WTK). Para tal, basta fornecer o nome do arquivo (ex: /nome.png ). Este método pode falhar e joga uma exceção de I/O caso isso ocorra. PUCPR - CCET 9

Carregando Imagens A referência para Image normalmente é criada como um atributo do GameCanvas. Caso a imagem vá ser usada durante toda a aplicação, esta é carregada no construtor. PUCPR - CCET 10

Carregando Imagens Exemplo de uso típico: Deve ser um atributo da classe declarado previamente! try { imagem=image.createimage("/fundo.png"); } catch(java.io.ioexception e){} PUCPR - CCET 11

Desenhando Imagens Para desenhar a imagem, utilizamos o contexto gráfico (Graphics) e o método drawimage. O método desenha a imagem baseada numa coordenada indicada e um dado alinhamento. Os exemplos até agora desenhavam um texto. O desenho de uma imagem é bastante semelhante. PUCPR - CCET 12

Desenhando Imagens public void drawimage(image img, int x, int y, int anchor) : img: referência para a imagem desenhada. x e y: coordenada de referência. anchor: indica a posição relativa da referência: LEFT: à esquerda RIGHT: à direita TOP: em cima BOTTOM: em baixo HCENTER: centro na horizontal. VCENTER: centro na vertical. PUCPR - CCET 13

Desenhando Imagens Exemplo de uso: Graphics g = getgraphics();... g.drawimage(imagem, 0, 0, Graphics.LEFT Graphics.TOP); PUCPR - CCET 14

Exercício 01 Crie um projeto com o Midlet chamado TestaSprite no KToolBar. Pegue o conteúdo do arquivo j2meexemplo04-testasprite.zip e coloque os arquivos nos diretórios adequados. Modifique o código para carregar a imagem no arquivo fundo.png e mostre-a como fundo da tela. Rode e veja o resultado. PUCPR - CCET 15

Desafio A imagem foi desenhada completa. Temos como desenhar apenas um pedaço dela? (clipping) Podemos determinar apenas uma área na tela para desenhar? Veja na documentação do J2ME na classe Image e Graphics. PUCPR - CCET 16

Criando Sprites Sprites em J2ME são criados a partir de imagens. Lembrando, sprites são os elementos animados que representam os personagens do jogo. A classe do sprite chama-se Sprite. PUCPR - CCET 17

Criando Sprites Sprites podem ter pontos transparentes ou não. Para colocar pontos transparentes, temos que usar uma ferramenta de edição de imagens. Para imagens de 256 cores ou menos, a cor transparente é uma cor chave. Para imagens com mais cores usa-se o canal de alpha. PUCPR - CCET 18

Criando Sprites Recomendações: Para evitar problemas, use cores contrastantes. Em geral, como serão usadas poucas cores, podemos utilizar imagens com 256 cores. Outro motivo para usar arquivos com menos cores é o tamanho do arquivo. Finalmente, certos handsets que não aceitam transparência por canal de alpha, só por cor chave (color key), que só é obtido com 256 cores. PUCPR - CCET 19

Criando Sprites Para criar um sprite a partir de uma imagem seguimos os seguintes passos: 1. Carregamos a imagem do JAR, como no exemplo da tela de fundo. 2. Em seguida, criamos o sprite usando como base a imagem recém carregada. PUCPR - CCET 20

Criando Sprites Para criar o sprite, utilizamos basicamente dois métodos construtores: public Sprite(Image image) public Sprite(Image image, int framewidth, int frameheight) Como em geral criamos sprites animados, interessa o segundo método. PUCPR - CCET 21

Criando Sprites Neste método, os parâmetros do frame significam: framewidth: largura do quadro de animação. frameheight: altura do quadro de animação. PUCPR - CCET 22

Criando Sprites Exemplos de arquivos com mais de um quadro de sprite: PUCPR - CCET 23

Criando Sprites Exemplo de criação de sprite no construtor do GameGavas: // Carrega o sprite try { Image temp = Image.createImage("/sprites16.png"); spr = new Sprite(image, 16, 16); } catch(java.io.ioexception e){} Deve ser um atributo da classe declarado previamente! PUCPR - CCET 24

Desenhando um Sprite Ao contrário de imagens, o sprite possui suas próprias funcionalidade de desenho. Esta funcionalidade recebe o contexto gráfico para desenhar. Como na função de redesenho nós capturamos o contexto, basta passá-lo ao sprite. PUCPR - CCET 25

Desenhando um Sprite O método que utilizamos para desenhar um sprite é paint, que possui a seguinte assinatura: public final void paint(graphics g) PUCPR - CCET 26

Desenhando um Sprite Para indicar em qual posição o sprite é desenhado utilizamos o seguinte método: public void setposition(int x, int y) Este método é herdado de Layer. PUCPR - CCET 27

Desenhando um Sprite Assim, um código que desenha um sprite tem a seguinte aparência: spr.setposition(200,50); spr.paint(g); PUCPR - CCET 28

Exercício 02 Modifique o exercício anterior para carregar o sprite no arquivo sprites16.png. Este arquivo contém um sprite com dois quadros de tamanho 16x16. Desenhe este sprite na tela. Utilize o estado das teclas para mover o sprite na tela. PUCPR - CCET 29

Animando o Sprite Sprites estáticos são interessante, porém em muitas situações precisamos de animações. Tais animações são obtidas com diversos quadros desenhados. O arquivo sprites16.png possui dois quadros. PUCPR - CCET 30

Animando o Sprite O programa anterior mostrava apenas um deles. Por default, o J2ME mostra o quadro 0. Para mudarmos o quadro selecionado, utilizamos o seguinte método da classe Sprite: public void setframe(int indice) PUCPR - CCET 31

Animando o Sprite Este método recebe um número VÁLIDO da sequência. Assim, ele escolhe qual dos quadros será desenhado nos paints subsequentes. Se trocarmos os quadros de tempos em tempos, podemos ter a ilusão de animação. PUCPR - CCET 32

Exercício 03 Modifique o exercício anterior para mudar o quadro exibido do sprite com o pressionamento do botão de tiro. PUCPR - CCET 33

Exercício 04 Além de mudarmos manualmente o quadro, podemos definir uma seqüência complexa com o método setframesequence, que recebe um vetor de inteiros. Depois, utilizamos os métodos nextframe e previousframe para rodar a animação. Estude a documentação do J2ME e experimente fazer uma animação com mais quadros. PUCPR - CCET 34

Próxima Aula Desenhando um TileMap Colisão de Sprites PUCPR - CCET 35