Projeto Conceitual de Jogos Desenvolvendo Jogos em Java
![Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 1 Introdução Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 1 Introdução](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-1.jpg)
![Sobre quem vos fala. . . Meantime Mobile Creations – Empresa incubada no C. Sobre quem vos fala. . . Meantime Mobile Creations – Empresa incubada no C.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-2.jpg)
![Agenda n n n n Mercado de jogos wireless Principais tecnologias Introdução a Java Agenda n n n n Mercado de jogos wireless Principais tecnologias Introdução a Java](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-3.jpg)
![Mercado: Cadeia de Valor Fluxo de produção >>> Brands Developer Publisher Technology Mobile Portal Mercado: Cadeia de Valor Fluxo de produção >>> Brands Developer Publisher Technology Mobile Portal](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-4.jpg)
![Mercado: Visão geral n Principais Players: EA Mobile (Jamdat), Gameloft (Ubi Software), Glu Mobile, Mercado: Visão geral n Principais Players: EA Mobile (Jamdat), Gameloft (Ubi Software), Glu Mobile,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-5.jpg)
![Principais Tecnologias n SMS/MMS – Jogos baseados na troca de mensagens (forca, quiz, penalty, Principais Tecnologias n SMS/MMS – Jogos baseados na troca de mensagens (forca, quiz, penalty,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-6.jpg)
![Telefones Java (>650 dispositivos) http: //developers. sun. com/techtopics/mobility/device/pub/device/list. do 20 dispositivos por página Novembro, Telefones Java (>650 dispositivos) http: //developers. sun. com/techtopics/mobility/device/pub/device/list. do 20 dispositivos por página Novembro,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-7.jpg)
![Introdução a plataforma J 2 ME SERVIDOR DESKTOP CELULARES Novembro, 2007 SMARTCARDS 8 Introdução a plataforma J 2 ME SERVIDOR DESKTOP CELULARES Novembro, 2007 SMARTCARDS 8](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-8.jpg)
![Arquitetura Java ME Application Profiles Configuration: Libraries KVM Host Operating System Device Hardware Novembro, Arquitetura Java ME Application Profiles Configuration: Libraries KVM Host Operating System Device Hardware Novembro,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-9.jpg)
![Universo Java ME Hoje… n n Java Community Process (JCP) Java Specification Request (JSR) Universo Java ME Hoje… n n Java Community Process (JCP) Java Specification Request (JSR)](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-10.jpg)
![Configurações n Uma especificação que define o ambiente de software para uma família de Configurações n Uma especificação que define o ambiente de software para uma família de](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-11.jpg)
![CLDC 1. 0 n CLDC - Connected Limited, Device Configuration – Dispositivos limitados com CLDC 1. 0 n CLDC - Connected Limited, Device Configuration – Dispositivos limitados com](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-12.jpg)
![Escopo do CLDC n Define: n Não define: – Linguagem Java e características da Escopo do CLDC n Define: n Não define: – Linguagem Java e características da](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-13.jpg)
![Limitação do CLDC n CLDC 1. 0 possui algumas limitações: – Ausência de ponto Limitação do CLDC n CLDC 1. 0 possui algumas limitações: – Ausência de ponto](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-14.jpg)
![Limitação do CLDC n CLDC 1. 1 adiciona alguns recursos ao CLDC 1. 0: Limitação do CLDC n CLDC 1. 1 adiciona alguns recursos ao CLDC 1. 0:](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-15.jpg)
![Pacotes do CLDC n Herdados do J 2 SE n Específicos do CLDC – Pacotes do CLDC n Herdados do J 2 SE n Específicos do CLDC –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-16.jpg)
![Profiles n n Um profile ou “perfil” é uma coleção de API´s em Java Profiles n n Um profile ou “perfil” é uma coleção de API´s em Java](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-17.jpg)
![MIDP Mobile Information Device Profile (MIDP). n. MIDP define: n –Interface com o Usuário MIDP Mobile Information Device Profile (MIDP). n. MIDP define: n –Interface com o Usuário](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-18.jpg)
![Pacotes do MIDP 1. 0 n MIDP Packages: –javax. microedition. midlet ·javax. microedition. midlet. Pacotes do MIDP 1. 0 n MIDP Packages: –javax. microedition. midlet ·javax. microedition. midlet.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-19.jpg)
![Pacotes adicionais do MIDP 2. 0 n MIDP 2. 0 Packages: –javax. microedition. media Pacotes adicionais do MIDP 2. 0 n MIDP 2. 0 Packages: –javax. microedition. media](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-20.jpg)
![O que é um MIDlet n É uma aplicação MIDP: – Possui uma classe O que é um MIDlet n É uma aplicação MIDP: – Possui uma classe](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-21.jpg)
![O que é um MIDlet (cont. ) n Gerenciado pelo “Java Application Manager” (JAM) O que é um MIDlet (cont. ) n Gerenciado pelo “Java Application Manager” (JAM)](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-22.jpg)
![Ciclo de vida dos MIDlets Novembro, 2007 23 Ciclo de vida dos MIDlets Novembro, 2007 23](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-23.jpg)
![MIDlet Suites e Descritores (JAD) n Uma MIDlet Suite é um conjunto de MIDlets MIDlet Suites e Descritores (JAD) n Uma MIDlet Suite é um conjunto de MIDlets](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-24.jpg)
![Passos para o desenvolvimento Novembro, 2007 1 2 3 4 5 6 25 Passos para o desenvolvimento Novembro, 2007 1 2 3 4 5 6 25](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-25.jpg)
![Ambiente de Desenvolvimento n Editor texto + Sun Wireless Toolkit (WTK) (free) n Net. Ambiente de Desenvolvimento n Editor texto + Sun Wireless Toolkit (WTK) (free) n Net.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-26.jpg)
![Nosso ambiente. . . n Eclipse Europa (3. 3) for Java Developers n Eclipseme Nosso ambiente. . . n Eclipse Europa (3. 3) for Java Developers n Eclipseme](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-27.jpg)
![Exercício 1 - Criar o famigerado “Alô mundo!” - Conceitos de Display - Criação Exercício 1 - Criar o famigerado “Alô mundo!” - Conceitos de Display - Criação](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-28.jpg)
![Dica: Esteja com a API ao alcance. . . n http: //java. sun. com/javame/reference/apis/jsr Dica: Esteja com a API ao alcance. . . n http: //java. sun. com/javame/reference/apis/jsr](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-29.jpg)
![Exercício 2 - Incrementar o “Alô Mundo” - Conceitos de Graphics e suas funções Exercício 2 - Incrementar o “Alô Mundo” - Conceitos de Graphics e suas funções](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-30.jpg)
![Agora que vocês já estão craques… n n Vamos ao nosso Jogo!!! Etapas na Agora que vocês já estão craques… n n Vamos ao nosso Jogo!!! Etapas na](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-31.jpg)
![Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 2 Prática Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 2 Prática](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-32.jpg)
![Planejando um jogo n Fase de game design / concepção – Escolha do mercado Planejando um jogo n Fase de game design / concepção – Escolha do mercado](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-33.jpg)
![Planejando um jogo (cont. ) n Equipe – Entre 4 e 7 pessoas – Planejando um jogo (cont. ) n Equipe – Entre 4 e 7 pessoas –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-34.jpg)
![Planejando um jogo (cont. ) n Limitações: – Tamanho das telas – Memória heap Planejando um jogo (cont. ) n Limitações: – Tamanho das telas – Memória heap](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-35.jpg)
![Nosso Jogo! Analisamos tudo que foi falado e… n Shot´em up game simplificadíiiiiissimo!! n“ Nosso Jogo! Analisamos tudo que foi falado e… n Shot´em up game simplificadíiiiiissimo!! n“](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-36.jpg)
![Já Temos as Características. . . Work! n Projetando as classes. Precisamos de: – Já Temos as Características. . . Work! n Projetando as classes. Precisamos de: –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-37.jpg)
![Sprite Projeto de classes <<extends>> Game. Object MIDlet <<extends>> Command. Listener Enemy Ship. Midlet Sprite Projeto de classes <<extends>> Game. Object MIDlet <<extends>> Command. Listener Enemy Ship. Midlet](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-38.jpg)
![Antes de codificar, vamos ver… n Recursos de jogos do MIDP 2. 0 – Antes de codificar, vamos ver… n Recursos de jogos do MIDP 2. 0 –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-39.jpg)
![Pacote Jogos MIDP 2. 0 n MIDP 2. 0 Packages: – javax. microedition. lcdui. Pacote Jogos MIDP 2. 0 n MIDP 2. 0 Packages: – javax. microedition. lcdui.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-40.jpg)
![Sprite s. set. Frame. Sequence(new int[]{0, 1, 2, … , 1, 1}); Sprite s Sprite s. set. Frame. Sequence(new int[]{0, 1, 2, … , 1, 1}); Sprite s](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-41.jpg)
![Constants n Comandos do jogo Características dos objetos –Declarar frame sequences (exercício) Características do Constants n Comandos do jogo Características dos objetos –Declarar frame sequences (exercício) Características do](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-42.jpg)
![Ship. Midlet n n n Possui referência para a tela principal do jogo Possui Ship. Midlet n n n Possui referência para a tela principal do jogo Possui](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-43.jpg)
![Ship. Controller n n n Thread que contêm o looping do jogo Trata todos Ship. Controller n n n Thread que contêm o looping do jogo Trata todos](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-44.jpg)
![Game. Object n Herda de javax. microedition. lcdui. game. Sprite – – – Posição Game. Object n Herda de javax. microedition. lcdui. game. Sprite – – – Posição](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-45.jpg)
![Ship n n n É um Game. Object Array de balas Indicação se a Ship n n n É um Game. Object Array de balas Indicação se a](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-46.jpg)
![Fire n n n É um Game. Object Tratamento ao sair da tela Atualiza Fire n n n É um Game. Object Tratamento ao sair da tela Atualiza](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-47.jpg)
![Enemy n n É um Game. Object Possui um comportamento ingênuo (randômico) Indicação se Enemy n n É um Game. Object Possui um comportamento ingênuo (randômico) Indicação se](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-48.jpg)
![Ship. Game. Screen n n n Inicializa e possui todos os objetos do jogo Ship. Game. Screen n n n Inicializa e possui todos os objetos do jogo](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-49.jpg)
![BUILD & RUN! Novembro, 2007 50 BUILD & RUN! Novembro, 2007 50](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-50.jpg)
![Deploy n n n “Over the Air” (OTA) Cabo serial Infra vermelho MIDLet server Deploy n n n “Over the Air” (OTA) Cabo serial Infra vermelho MIDLet server](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-51.jpg)
![Melhorias n n n n n Adição de splash screen Adição de menu Melhorar Melhorias n n n n n Adição de splash screen Adição de menu Melhorar](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-52.jpg)
![Melhorias no uso de MIDP 2. 0 n Outros recursos de jogos do MIDP Melhorias no uso de MIDP 2. 0 n Outros recursos de jogos do MIDP](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-53.jpg)
![Otimize, se necessário n Obfuscadores para diminuir tamanho de código – Proguard, Retroguard, etc. Otimize, se necessário n Obfuscadores para diminuir tamanho de código – Proguard, Retroguard, etc.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-54.jpg)
![Otimização (cont. ) n Combine várias imagens em uma só 1 PNG 0. 7 Otimização (cont. ) n Combine várias imagens em uma só 1 PNG 0. 7](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-55.jpg)
![Um pouco mais sobre porte n n n Importância do porte – Boa parte Um pouco mais sobre porte n n n Importância do porte – Boa parte](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-56.jpg)
![Boas práticas para o porte n Manter código único – Pré-processamento //#ifdef <symbol> · Boas práticas para o porte n Manter código único – Pré-processamento //#ifdef <symbol> ·](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-57.jpg)
![Dicas finais n Sites interessantes – http: //www. forum. nokia. com – http: //www. Dicas finais n Sites interessantes – http: //www. forum. nokia. com – http: //www.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-58.jpg)
![Obrigado! Dúvidas, questionamentos ou aflições. . . tarcisio. camara@meantime. com. br Novembro, 2007 59 Obrigado! Dúvidas, questionamentos ou aflições. . . tarcisio. camara@meantime. com. br Novembro, 2007 59](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-59.jpg)
- Slides: 59
![Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 1 Introdução Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 1 Introdução](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-1.jpg)
Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 1 Introdução à Java ME Tarcisio Camara tarcisio. camara@meantime. com. br Geber Ramalho glr@cin. ufpe. br Novembro, 2007 1
![Sobre quem vos fala Meantime Mobile Creations Empresa incubada no C Sobre quem vos fala. . . Meantime Mobile Creations – Empresa incubada no C.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-2.jpg)
Sobre quem vos fala. . . Meantime Mobile Creations – Empresa incubada no C. E. S. A. R focado no desenvolvimento de jogos e aplicativos, baseados em dispositivos móveis, para usuários finais n n Um dos pioneiros mundiais (desde 2001) na tecnologia J 2 ME n Várias tecnologias wireless: J 2 ME, BREW, WAP, SMS e MMS n Atualmente, distribui jogos para EUA, Europa e alguns países da América Latina e Ásia n Parceria com diversos fabricantes, publishers e operadoras n Produzimos mais de 40 jogos para celulares (alguns para a Motorola, Sony Ericsson, etc) n Atua como publisher no Brasil, com parceria com todas as operadoras Novembro, 2007 2
![Agenda n n n n Mercado de jogos wireless Principais tecnologias Introdução a Java Agenda n n n n Mercado de jogos wireless Principais tecnologias Introdução a Java](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-3.jpg)
Agenda n n n n Mercado de jogos wireless Principais tecnologias Introdução a Java ME Wireless Game Design Criando nosso Jogo Sugestão de Melhorias Dicas de performance / redução de código Novembro, 2007 3
![Mercado Cadeia de Valor Fluxo de produção Brands Developer Publisher Technology Mobile Portal Mercado: Cadeia de Valor Fluxo de produção >>> Brands Developer Publisher Technology Mobile Portal](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-4.jpg)
Mercado: Cadeia de Valor Fluxo de produção >>> Brands Developer Publisher Technology Mobile Portal Carrier End-user <<< Fluxo de receita (R$) n Ciclo de desenvolvimento deve ser rápido (<6 meses) n Retorno do investimento lento Novembro, 2007 4
![Mercado Visão geral n Principais Players EA Mobile Jamdat Gameloft Ubi Software Glu Mobile Mercado: Visão geral n Principais Players: EA Mobile (Jamdat), Gameloft (Ubi Software), Glu Mobile,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-5.jpg)
Mercado: Visão geral n Principais Players: EA Mobile (Jamdat), Gameloft (Ubi Software), Glu Mobile, Digital Chocolate, Hands On e IPlay. – Empresas com atuação mundial – Faturamentos crescentes e superiores a 60 milhões de dólares por ano n n Modelo de negócios padrão: revenue share em cima das vendas operadoras para os usuários finais Mercando em processo de consolidação Novembro, 2007 5
![Principais Tecnologias n SMSMMS Jogos baseados na troca de mensagens forca quiz penalty Principais Tecnologias n SMS/MMS – Jogos baseados na troca de mensagens (forca, quiz, penalty,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-6.jpg)
Principais Tecnologias n SMS/MMS – Jogos baseados na troca de mensagens (forca, quiz, penalty, etc. ) n WAP/x. HTML/i. MODE – Jogos baseados em páginas estáticas (velha, pedra papel tesoura, etc. ) n Brew (Binary Runtime Environment for Windows) – Ambiente de execução para chipset Qualcomm – C++ e API definida pela Qualcomm (animações, som, recursos – n de rede, etc. . . ) Principal mercado: EUA Java ME – – Java otimizado para dispositivos com limitações Adotado por todos os maiores players do mercado API’s especificadas pela comunidade JCP Padrão do mercado Novembro, 2007 6
![Telefones Java 650 dispositivos http developers sun comtechtopicsmobilitydevicepubdevicelist do 20 dispositivos por página Novembro Telefones Java (>650 dispositivos) http: //developers. sun. com/techtopics/mobility/device/pub/device/list. do 20 dispositivos por página Novembro,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-7.jpg)
Telefones Java (>650 dispositivos) http: //developers. sun. com/techtopics/mobility/device/pub/device/list. do 20 dispositivos por página Novembro, 2007 7
![Introdução a plataforma J 2 ME SERVIDOR DESKTOP CELULARES Novembro 2007 SMARTCARDS 8 Introdução a plataforma J 2 ME SERVIDOR DESKTOP CELULARES Novembro, 2007 SMARTCARDS 8](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-8.jpg)
Introdução a plataforma J 2 ME SERVIDOR DESKTOP CELULARES Novembro, 2007 SMARTCARDS 8
![Arquitetura Java ME Application Profiles Configuration Libraries KVM Host Operating System Device Hardware Novembro Arquitetura Java ME Application Profiles Configuration: Libraries KVM Host Operating System Device Hardware Novembro,](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-9.jpg)
Arquitetura Java ME Application Profiles Configuration: Libraries KVM Host Operating System Device Hardware Novembro, 2007 9
![Universo Java ME Hoje n n Java Community Process JCP Java Specification Request JSR Universo Java ME Hoje… n n Java Community Process (JCP) Java Specification Request (JSR)](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-10.jpg)
Universo Java ME Hoje… n n Java Community Process (JCP) Java Specification Request (JSR) http: //java. sun. com/javame/technology/jcp. jsp Novembro, 2007 10
![Configurações n Uma especificação que define o ambiente de software para uma família de Configurações n Uma especificação que define o ambiente de software para uma família de](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-11.jpg)
Configurações n Uma especificação que define o ambiente de software para uma família de dispositivos, geralmente: – Os tipos e quantidade de memória disponível – Tipos de processadores e velocidade – Tipo de conexão de rede n n n Inclui um conjunto básico de classes Java É especificada pela JCP Connected Device Configuration (CDC) – High end consumer devices · PDA, TV set-top boxes, etc n Connected, Limited Device Configuration (CLDC) – Low end consumer devices · Cell phones, limited PDAs, etc Novembro, 2007 11
![CLDC 1 0 n CLDC Connected Limited Device Configuration Dispositivos limitados com CLDC 1. 0 n CLDC - Connected Limited, Device Configuration – Dispositivos limitados com](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-12.jpg)
CLDC 1. 0 n CLDC - Connected Limited, Device Configuration – Dispositivos limitados com poucos recursos – Processador de, no mínimo 8 Mhz – A partir de 160 K de memória heap reservada pra Java – Acesso a rede com pouca largura de banda n Target Devices – Celulares – Two Way Pagers – Personal Organizers – etc. Novembro, 2007 12
![Escopo do CLDC n Define n Não define Linguagem Java e características da Escopo do CLDC n Define: n Não define: – Linguagem Java e características da](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-13.jpg)
Escopo do CLDC n Define: n Não define: – Linguagem Java e características da VM – I/O – Networking framework – Segurança – Internacionalização – Gerenciamento do ciclo de vida da aplicação (instalação, – – – execução, deleção) Interface com o usuário Tratamento de eventos Interação entre usuário e aplicação (comandos, etc…) Novembro, 2007 13
![Limitação do CLDC n CLDC 1 0 possui algumas limitações Ausência de ponto Limitação do CLDC n CLDC 1. 0 possui algumas limitações: – Ausência de ponto](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-14.jpg)
Limitação do CLDC n CLDC 1. 0 possui algumas limitações: – Ausência de ponto flutuante – Ausência de Weak References – Ausência de Finalização – – – · Não existe o método finalize() no CLDC Não possui suporte a JNI. Não possui a API de Reflection. Ausência de daemon-threads e thread groups. Limitação no suporte a Internacionalização · Permite a conversão de byte stream para Unicode e vice-versa Limitação no tratamento de Erros · Apenas duas classes: java. lang. Virtual. Machine. Error, java. lang. Out. Of. Memory. Error Novembro, 2007 14
![Limitação do CLDC n CLDC 1 1 adiciona alguns recursos ao CLDC 1 0 Limitação do CLDC n CLDC 1. 1 adiciona alguns recursos ao CLDC 1. 0:](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-15.jpg)
Limitação do CLDC n CLDC 1. 1 adiciona alguns recursos ao CLDC 1. 0: – Adição de ponto flutuante – Adição de Weak Reference – Adição de suporte a nomes de Threads – Memória mínima de 162 para 192 kbytes Novembro, 2007 15
![Pacotes do CLDC n Herdados do J 2 SE n Específicos do CLDC Pacotes do CLDC n Herdados do J 2 SE n Específicos do CLDC –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-16.jpg)
Pacotes do CLDC n Herdados do J 2 SE n Específicos do CLDC – java. lang – java. io – java. util – javax. microedition. io Novembro, 2007 16
![Profiles n n Um profile ou perfil é uma coleção de APIs em Java Profiles n n Um profile ou “perfil” é uma coleção de API´s em Java](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-17.jpg)
Profiles n n Um profile ou “perfil” é uma coleção de API´s em Java que complementa uma configuração a fim de prover habilidades para uma família de dispositivos É especificada pela JCP O principal objetivo é garantir a interoperabilidade entre uma família de dispositivos. MIDP (Mobile Information Device Profile): Principal e presente na maioria absoluta dos dispositivos – MIDP 1. 0 – MIDP 2. 1 – MIDP 3. 0 (em breve) Novembro, 2007 17
![MIDP Mobile Information Device Profile MIDP n MIDP define n Interface com o Usuário MIDP Mobile Information Device Profile (MIDP). n. MIDP define: n –Interface com o Usuário](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-18.jpg)
MIDP Mobile Information Device Profile (MIDP). n. MIDP define: n –Interface com o Usuário –Persistência (usando um modelo simples orientado a registros) –Networking (estende o Generic Connection framework do CLDC) –Ciclo de vida da Aplicação –Tratamento de eventos (teclas, interrupção, etc. ) n Requisitos de Hardware Memória não volátil Memória volátil Tela Entrada Conectividade Som Novembro, 2007 MIDP 1. 0 MIDP 2. 0 128 Kb 256 Kb 32 Kb 128 Kb 96 x 54 - 2 cores Teclado e/ou touch screen HTTP 1. 1 Não exigido Tons, WAV, MIDI 18
![Pacotes do MIDP 1 0 n MIDP Packages javax microedition midlet javax microedition midlet Pacotes do MIDP 1. 0 n MIDP Packages: –javax. microedition. midlet ·javax. microedition. midlet.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-19.jpg)
Pacotes do MIDP 1. 0 n MIDP Packages: –javax. microedition. midlet ·javax. microedition. midlet. MIDlet –javax. microedition. lcdui –javax. microedition. rms ·javax. microedition. rms. Record. Store Novembro, 2007 19
![Pacotes adicionais do MIDP 2 0 n MIDP 2 0 Packages javax microedition media Pacotes adicionais do MIDP 2. 0 n MIDP 2. 0 Packages: –javax. microedition. media](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-20.jpg)
Pacotes adicionais do MIDP 2. 0 n MIDP 2. 0 Packages: –javax. microedition. media ·javax. microedition. media. Player ·javax. microedition. media. Control –javax. microedition. media. control ·javax. microedition. media. control. Volume. Control –javax. microedition. lcdui. game lcdui Layer * Tiled. Layer Sprite Layer. Manager Displayable Game. Canvas –javax. microedition. io ·javax. microedition. io. Push. Registry Novembro, 2007 20
![O que é um MIDlet n É uma aplicação MIDP Possui uma classe O que é um MIDlet n É uma aplicação MIDP: – Possui uma classe](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-21.jpg)
O que é um MIDlet n É uma aplicação MIDP: – Possui uma classe Java que estende da classe MIDlet e implementa os seguintes métodos: · start. App() · pause. App() · destroy. App() – Possui um modelo de ciclo de vida similar aos Applets (explicado adiante). Novembro, 2007 21
![O que é um MIDlet cont n Gerenciado pelo Java Application Manager JAM O que é um MIDlet (cont. ) n Gerenciado pelo “Java Application Manager” (JAM)](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-22.jpg)
O que é um MIDlet (cont. ) n Gerenciado pelo “Java Application Manager” (JAM) – Uma aplicação que deve vir acompanhando a – – implementação do MIDP e que controla a instalação, execução e remoção dos MIDlets Provê o ambiente de execução dos MIDlets Trata todos os erros ocorridos durante a instalação e execução dos aplicativos sem “derrubar” o dispositivo Novembro, 2007 22
![Ciclo de vida dos MIDlets Novembro 2007 23 Ciclo de vida dos MIDlets Novembro, 2007 23](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-23.jpg)
Ciclo de vida dos MIDlets Novembro, 2007 23
![MIDlet Suites e Descritores JAD n Uma MIDlet Suite é um conjunto de MIDlets MIDlet Suites e Descritores (JAD) n Uma MIDlet Suite é um conjunto de MIDlets](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-24.jpg)
MIDlet Suites e Descritores (JAD) n Uma MIDlet Suite é um conjunto de MIDlets (e seus arquivos) empacotados em um JAR – Uma suite deve possuir pelo menos um MIDlet – JAR contém: Arquivos. class , arquivos de recursos (imagem – – n . png, sons. midi, etc) e um manifest. MIDLets numa mesma suite podem compartilhar classes, recursos contidos no JAR e memória persistent. MIDlets de suites diferentes não podem interagir (MIDP 1 e 2) JAD (Java Application Descriptor) – Pequeno arquivo texto que descreve uma Suite – Usado pela JAM para fazer verificações antes de baixar a Suite – Pode ser usado para guardar propriedades da aplicação MIDlet-1: Alo. Mundo, , org. cesar. j 2 me. Alo. MIDlet-Name: Alô Mundo! MIDlet-Vendor: C. E. S. A. R MIDlet-Version: 1. 0 MIDlet-Jar-Size: 7808 MIDlet-Jar-URL: Hello. Examples. jar n O par JAR/JAD representa o executável da aplicação Novembro, 2007 24
![Passos para o desenvolvimento Novembro 2007 1 2 3 4 5 6 25 Passos para o desenvolvimento Novembro, 2007 1 2 3 4 5 6 25](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-25.jpg)
Passos para o desenvolvimento Novembro, 2007 1 2 3 4 5 6 25
![Ambiente de Desenvolvimento n Editor texto Sun Wireless Toolkit WTK free n Net Ambiente de Desenvolvimento n Editor texto + Sun Wireless Toolkit (WTK) (free) n Net.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-26.jpg)
Ambiente de Desenvolvimento n Editor texto + Sun Wireless Toolkit (WTK) (free) n Net. Beans Mobility + WTK (free) n Eclipse + Eclipse. ME + WTK (free) n SDK´s dos fabricantes (Nokia, Motorola, Sony. Ericsson, Siemens, …) – http: //java. sun. com/products/sjwtoolkit/ – http: //www. netbeans. org/products/mobility/ – http: //www. eclipse. org/downloads/index. php – http: //eclipseme. org/docs/installation. html – http: //developer. motorola. com/docstools/sdks/ – http: //forum. nokia. com/ – http: //developer. sonyericsson. com/site/global/home/p_home. jsp n Borland JBuilder ($400 individual) – http: //www. borland. com/us/products/jbuilder/index. html Novembro, 2007 26
![Nosso ambiente n Eclipse Europa 3 3 for Java Developers n Eclipseme Nosso ambiente. . . n Eclipse Europa (3. 3) for Java Developers n Eclipseme](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-27.jpg)
Nosso ambiente. . . n Eclipse Europa (3. 3) for Java Developers n Eclipseme plugin 1. 7. 6 n Sun Java Wireless Toolkit for CLDC (WTK) 2. 5. 2 Novembro, 2007 27
![Exercício 1 Criar o famigerado Alô mundo Conceitos de Display Criação Exercício 1 - Criar o famigerado “Alô mundo!” - Conceitos de Display - Criação](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-28.jpg)
Exercício 1 - Criar o famigerado “Alô mundo!” - Conceitos de Display - Criação e exibição de um High-Level Displayable - Conceitos de adição e tratamento de Comandos Novembro, 2007 28
![Dica Esteja com a API ao alcance n http java sun comjavamereferenceapisjsr Dica: Esteja com a API ao alcance. . . n http: //java. sun. com/javame/reference/apis/jsr](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-29.jpg)
Dica: Esteja com a API ao alcance. . . n http: //java. sun. com/javame/reference/apis/jsr 118/ Novembro, 2007 29
![Exercício 2 Incrementar o Alô Mundo Conceitos de Graphics e suas funções Exercício 2 - Incrementar o “Alô Mundo” - Conceitos de Graphics e suas funções](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-30.jpg)
Exercício 2 - Incrementar o “Alô Mundo” - Conceitos de Graphics e suas funções Fontes Criação e exibição de um Low-Level Displayable Tratamento de teclas Criação e renderização de Imagens Novembro, 2007 30
![Agora que vocês já estão craques n n Vamos ao nosso Jogo Etapas na Agora que vocês já estão craques… n n Vamos ao nosso Jogo!!! Etapas na](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-31.jpg)
Agora que vocês já estão craques… n n Vamos ao nosso Jogo!!! Etapas na concepção de um Jogo – Planejando um Jogo – Projetando um Jogo – Desenvolvendo um Jogo – Emulando um Jogo (testes) – Deploy do Jogo (testes reais) n Dicas de performance / Redução de código Novembro, 2007 31
![Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 2 Prática Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 2 Prática](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-32.jpg)
Projeto Conceitual de Jogos Desenvolvendo Jogos em Java ME para celulares Aula 2 Prática de jogos em Java ME Tarcisio Camara tarcisio. camara@meantime. com. br Geber Ramalho glr@cin. ufpe. br Novembro, 2007 32
![Planejando um jogo n Fase de game design concepção Escolha do mercado Planejando um jogo n Fase de game design / concepção – Escolha do mercado](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-33.jpg)
Planejando um jogo n Fase de game design / concepção – Escolha do mercado – Escolha da categoria (Arcade, Puzzle, Ação, – – – n Esportes, RPG. . . ) Benchmark (atari, mega drive, nintendo 8 bits, etc) Multiplayer / Singleplayer Celulares foco Características de um bom jogo wireless – Rápido e fácil de começar e de navegar (evitar uso de – – – muitas softkeys e pressionamento de teclas). Desafiador mas não impossível. Jogos curtos ou com savegame Sem muitas combinações de teclas e regras Novembro, 2007 33
![Planejando um jogo cont n Equipe Entre 4 e 7 pessoas Planejando um jogo (cont. ) n Equipe – Entre 4 e 7 pessoas –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-34.jpg)
Planejando um jogo (cont. ) n Equipe – Entre 4 e 7 pessoas – Interdisciplinar: artitas gráficos, músicos, game designers, engenheiros de software, engenheiro de testes, etc… n n n Grana – Em torno de R$ 120. 000 Exigências do mercado (desafios extra) – Ciclo de desenvolvimento curto: 3 a 6 meses – Porte e localização – Otimização e qualidade Distribuição – Portais de conteúdo – Escravos das operadoras – Número de dispositivos é barreira de entrada Novembro, 2007 34
![Planejando um jogo cont n Limitações Tamanho das telas Memória heap Planejando um jogo (cont. ) n Limitações: – Tamanho das telas – Memória heap](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-35.jpg)
Planejando um jogo (cont. ) n Limitações: – Tamanho das telas – Memória heap – Número de cores – Som – Tamanho do JAR – Latência da rede – Custo final do jogo deve ficar entre R$ 5, 00 e R$ 10, 00 – Custo alto no uso da rede (~1 centavo por kbyte – R$ 1, 00 a mais no custo de um jogo de 100 kb, só pra fazer o download) Novembro, 2007 35
![Nosso Jogo Analisamos tudo que foi falado e n Shotem up game simplificadíiiiiissimo n Nosso Jogo! Analisamos tudo que foi falado e… n Shot´em up game simplificadíiiiiissimo!! n“](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-36.jpg)
Nosso Jogo! Analisamos tudo que foi falado e… n Shot´em up game simplificadíiiiiissimo!! n“ Star Hero é um jogo singleplayer, no estilo shoot’em up. O jogo consiste em uma espaçonave controlada pelo jogador que trafega pelas galáxias, atirando em inimigos. Essas ações resultam em pontos para o jogador. O objetivo do jogo é acumular o máximo de pontos possíveis. ” n Novembro, 2007 36
![Já Temos as Características Work n Projetando as classes Precisamos de Já Temos as Características. . . Work! n Projetando as classes. Precisamos de: –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-37.jpg)
Já Temos as Características. . . Work! n Projetando as classes. Precisamos de: – Um MIDlet (óbvio!) – Uma classe que trata os comandos alto-nível e possui o – – – looping básico do jogo (lê entrada, atualiza estado e pinta a tela) Uma classe que representa um elemento do jogo (Game. Object) Uma classe representando a nave Uma classe representando os inimigos Uma classe representando as balas Uma classe representando a tela principal com a lógica principal do jogo Uma classe com todas as constantes (facilitar o acesso) Novembro, 2007 37
![Sprite Projeto de classes extends Game Object MIDlet extends Command Listener Enemy Ship Midlet Sprite Projeto de classes <<extends>> Game. Object MIDlet <<extends>> Command. Listener Enemy Ship. Midlet](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-38.jpg)
Sprite Projeto de classes <<extends>> Game. Object MIDlet <<extends>> Command. Listener Enemy Ship. Midlet start. App() pause. App() destroy. App() update() draw() apply. Speed() intersects() update() <<extends>> Ship update() draw() Fire * Runnable update() draw() <<implements>> * <<implements>> Ship. Controller Ship. Game. Screen run() set. Paused() set. Game. Over() command. Action() load. Game. Objects() update() paint() key. Pressed() Novembro, 2007 Constants 38
![Antes de codificar vamos ver n Recursos de jogos do MIDP 2 0 Antes de codificar, vamos ver… n Recursos de jogos do MIDP 2. 0 –](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-39.jpg)
Antes de codificar, vamos ver… n Recursos de jogos do MIDP 2. 0 – Fazer nosso Game. Object herdar do Sprite de MIDP 2. 0 – Usar colisão do sprite de MIDP 2. 0 – Usar Game. Canvas · Usar tratamento de teclas usando get. Key. States() · Usar back buffer usando get. Graphics() · Usar full screen – Adição de som (sugestão MIDI) Novembro, 2007 39
![Pacote Jogos MIDP 2 0 n MIDP 2 0 Packages javax microedition lcdui Pacote Jogos MIDP 2. 0 n MIDP 2. 0 Packages: – javax. microedition. lcdui.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-40.jpg)
Pacote Jogos MIDP 2. 0 n MIDP 2. 0 Packages: – javax. microedition. lcdui. game lcdui Layer * Tiled. Layer Sprite Layer. Manager Displayable Game. Canvas Game. Object – Vide API · http: //java. sun. com/javame/reference/apis/jsr 118/ Novembro, 2007 40
![Sprite s set Frame Sequencenew int0 1 2 1 1 Sprite s Sprite s. set. Frame. Sequence(new int[]{0, 1, 2, … , 1, 1}); Sprite s](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-41.jpg)
Sprite s. set. Frame. Sequence(new int[]{0, 1, 2, … , 1, 1}); Sprite s = new Sprite(image, frame. Width, frame. Height); s. move(10, 0); s. next. Frame(); Novembro, 2007 41
![Constants n Comandos do jogo Características dos objetos Declarar frame sequences exercício Características do Constants n Comandos do jogo Características dos objetos –Declarar frame sequences (exercício) Características do](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-42.jpg)
Constants n Comandos do jogo Características dos objetos –Declarar frame sequences (exercício) Características do aparelho (largura e altura da tela) Imagens usadas pelos objetos n Método para carregar as imagens (load. Images()) n n n Novembro, 2007 42
![Ship Midlet n n n Possui referência para a tela principal do jogo Possui Ship. Midlet n n n Possui referência para a tela principal do jogo Possui](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-43.jpg)
Ship. Midlet n n n Possui referência para a tela principal do jogo Possui referência para o controlador do jogo Inicializa os objetos acima no start. App() Inicializa o looping do jogo no controlador Mostra a tela do jogo Novembro, 2007 43
![Ship Controller n n n Thread que contêm o looping do jogo Trata todos Ship. Controller n n n Thread que contêm o looping do jogo Trata todos](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-44.jpg)
Ship. Controller n n n Thread que contêm o looping do jogo Trata todos os comandos “alto nível”do jogo Controla o estado de pause/resume do jogo (lembrar que não tem relação com o pause. App()) Novembro, 2007 44
![Game Object n Herda de javax microedition lcdui game Sprite Posição Game. Object n Herda de javax. microedition. lcdui. game. Sprite – – – Posição](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-45.jpg)
Game. Object n Herda de javax. microedition. lcdui. game. Sprite – – – Posição x e y na tela Altura e largura Frame sequence para controlar as animações Representação gráfica (método paint()) Detecção de colisão n Estende com n Responsabilidades das subclasses: Ship, Enemy e Fire – Velocidades horizontal e vertical – Método abstrato update() – Inicializar frame sequences nos construtores e nas mudanças de – estado das classes Fazendo isso, não é necessário especializar o método paint(), ou seja, a lógica de renderização é reusada. Novembro, 2007 45
![Ship n n n É um Game Object Array de balas Indicação se a Ship n n n É um Game. Object Array de balas Indicação se a](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-46.jpg)
Ship n n n É um Game. Object Array de balas Indicação se a nave está explodindo Inicializar frame sequences nos construtores e nas mudanças de estado das classes Métodos para mover a nave Método pra disparar balas Novembro, 2007 46
![Fire n n n É um Game Object Tratamento ao sair da tela Atualiza Fire n n n É um Game. Object Tratamento ao sair da tela Atualiza](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-47.jpg)
Fire n n n É um Game. Object Tratamento ao sair da tela Atualiza a posição, dada a velocidade Novembro, 2007 47
![Enemy n n É um Game Object Possui um comportamento ingênuo randômico Indicação se Enemy n n É um Game. Object Possui um comportamento ingênuo (randômico) Indicação se](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-48.jpg)
Enemy n n É um Game. Object Possui um comportamento ingênuo (randômico) Indicação se a nave está explodindo Inicializa os frame sequences nos construtores e nas mudanças de estado das classes (exercício) Novembro, 2007 48
![Ship Game Screen n n n Inicializa e possui todos os objetos do jogo Ship. Game. Screen n n n Inicializa e possui todos os objetos do jogo](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-49.jpg)
Ship. Game. Screen n n n Inicializa e possui todos os objetos do jogo (Nave, Inimigos e Balas) (exercício) Centraliza a atualização dos estados objetos (exercício) Controla colisão de balas com inimigos Controla colisão de inimigos com a nave (exercício) Renderiza todos os objetos (exercício) Controla e pinta informações do jogo (pontuação, level e vidas) Trata pressionamento das teclas (esquerda, direita e fire) (exercício) Novembro, 2007 49
![BUILD RUN Novembro 2007 50 BUILD & RUN! Novembro, 2007 50](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-50.jpg)
BUILD & RUN! Novembro, 2007 50
![Deploy n n n Over the Air OTA Cabo serial Infra vermelho MIDLet server Deploy n n n “Over the Air” (OTA) Cabo serial Infra vermelho MIDLet server](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-51.jpg)
Deploy n n n “Over the Air” (OTA) Cabo serial Infra vermelho MIDLet server descoberta JAR remoção jad Atualização instalação jad’ JAR checagem confirmação Novembro, 2007 execução 51
![Melhorias n n n n n Adição de splash screen Adição de menu Melhorar Melhorias n n n n n Adição de splash screen Adição de menu Melhorar](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-52.jpg)
Melhorias n n n n n Adição de splash screen Adição de menu Melhorar tela de game over Tabela com recordes (RMS) Background com scrolling Chefe de fase Coleta de itens (campo de força, diferentes tiros, etc) Tipos diferentes de inimigos I. A dos inimigos Upload de pontuação Novembro, 2007 52
![Melhorias no uso de MIDP 2 0 n Outros recursos de jogos do MIDP Melhorias no uso de MIDP 2. 0 n Outros recursos de jogos do MIDP](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-53.jpg)
Melhorias no uso de MIDP 2. 0 n Outros recursos de jogos do MIDP 2. 0 – Usar Game. Canvas · Usar tratamento de teclas usando get. Key. States() · Usar back buffer usando get. Graphics() · Usar full screen – Adição de som (sugestão MIDI) Novembro, 2007 53
![Otimize se necessário n Obfuscadores para diminuir tamanho de código Proguard Retroguard etc Otimize, se necessário n Obfuscadores para diminuir tamanho de código – Proguard, Retroguard, etc.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-54.jpg)
Otimize, se necessário n Obfuscadores para diminuir tamanho de código – Proguard, Retroguard, etc. n n n n Cautela no uso de herança e excesso de classes Evite usar classes anônimas ou aninhadas Acessos a variáveis estáticas e métodos estáticos é mais rápido Arrays no lugar de Vectors Loops de trás pra frente (comparação com 0, null e false é mais rápida) Reuse objetos Cuidado no uso de Strings Novembro, 2007 54
![Otimização cont n Combine várias imagens em uma só 1 PNG 0 7 Otimização (cont. ) n Combine várias imagens em uma só 1 PNG 0. 7](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-55.jpg)
Otimização (cont. ) n Combine várias imagens em uma só 1 PNG 0. 7 k 4 PNG 1. 6 k n n n Número de cores das imagens Uso do Clip pra pintura Preocupações – Tamanho do Jar (64 k ~ 150 k) – Memória (200 k ~ 1 Mb) – Processamento (5 fps ~ 12 fps) Novembro, 2007 55
![Um pouco mais sobre porte n n n Importância do porte Boa parte Um pouco mais sobre porte n n n Importância do porte – Boa parte](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-56.jpg)
Um pouco mais sobre porte n n n Importância do porte – Boa parte do desenvolvimento (~ 40%) – Pensar no porte desde o projeto do jogo Exemplos de variações – Tamanho de tela – API de som – Versão API (MIDP 1. 0 ou 2. 0, etc) – Bugs do celular – Vários idiomas – Funcionalidades do jogo – etc… Escala – Chega-se a gerar +2000 versões de uma aplicação Novembro, 2007 56
![Boas práticas para o porte n Manter código único Préprocessamento ifdef symbol Boas práticas para o porte n Manter código único – Pré-processamento //#ifdef <symbol> ·](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-57.jpg)
Boas práticas para o porte n Manter código único – Pré-processamento //#ifdef <symbol> · http: //antenna. sourceforge. net/ · http: //eclipseme. org/index. html – Aspectos · Pesquisa acadêmica n Sistemas de build – Responsável por gerar as várias versões da aplicação – Pré-processa código antes de compilar – Gerencia resources: seleciona arquivos (imagens, sons, – etc) por versão Empacota tudo gerando executáveis (jar e jad) – http: //ant. apache. org/manual/ Novembro, 2007 57
![Dicas finais n Sites interessantes http www forum nokia com http www Dicas finais n Sites interessantes – http: //www. forum. nokia. com – http: //www.](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-58.jpg)
Dicas finais n Sites interessantes – http: //www. forum. nokia. com – http: //www. motocoder. com – http: //wireless. java. sun. com – http: //www. microjava. com – http: //www. midlet-review. com n Listas de discussão – kvm-interest – j 2 me-brasil Novembro, 2007 58
![Obrigado Dúvidas questionamentos ou aflições tarcisio camarameantime com br Novembro 2007 59 Obrigado! Dúvidas, questionamentos ou aflições. . . tarcisio. camara@meantime. com. br Novembro, 2007 59](https://slidetodoc.com/presentation_image_h2/0a0276b0ab29720c56b59d9919bf4468/image-59.jpg)
Obrigado! Dúvidas, questionamentos ou aflições. . . tarcisio. camara@meantime. com. br Novembro, 2007 59
Mapa conceitual sobre projeto de vida
Os jogos eletrônicos substituirão os jogos populares
Morfossintática
Mapa conceitual sobre direitos humanos
Mapa conceitual genética
Mapa conceitual sobre dilatação térmica
Mapa conceitual do sistema solar
Esquema referencial pichon riviere
Mapa conceitual aquecimento global
Ppp marco situacional conceitual e operacional
Mapa conceitual filosofia antiga
Mapa conceitual do sistema solar
Pensamento conceitual
Como surgiu a arte conceitual
Estética introdução conceitual
Manifesto surrealista atmosfera
Mapa conceitual pedagogia
O que é temperatura
Mapa conceitual
Surrealismo contexto histórico
Mapa conceitual numeros complexos
Import java.util.random;
Java import java.io.*
Rmi vs ejb
Import java util scanner
Java import java.io.*
Perbedaan java swing dan awt
Import java.util.*
Import java
Import java.awt.event
Import java util
Import java.util.*
Gcd java
Programming language b
Import java.awt.* import java.applet.*
Jogos e brincadeiras
Jogos online
Dilema do prisioneiro
Regras do jogo do lenço
São jogos pré-desportivos
Solidariedade e cooperação nos jogos esportivos
Jogos online gratis
Estratégia dominante teoria dos jogos
Pronomes possessivos
Instituto de supervisão de jogos
Nos jogos cooperativos cada indivíduo representa
O que são jogos pré-desportivos
Jogos criativos para jovens
Jogos populares no brasil
Oficina de jogos e brincadeiras
Exemplo de jogos cooperativos
Efuturo jogos educativos
Jogos cooperativos sem perdedores
Jogos online
Jogos feitos em lua
Google imagens
Prf.gov.br multas
Ronilson de souza luiz
Reforo
Cronograma de projeto integrador