O USO DA ANDENGINE COMO MOTOR DE DESENVOLVIMENTO DE JOGOS EM 2D PARA DISPOSITIVOS MÓVEIS COM ANDROID



Documentos relacionados
GRÁFICOS Exemplos de jogos 2D (com simulação do 3D)

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Noções de. Microsoft SQL Server. Microsoft SQL Server

Professor: Ronilson Morais Lobo. Salvador / 2015

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

OneDrive: saiba como usar a nuvem da Microsoft

DESENVOLVIMENTO DE JOGOS DIGITAIS. Desmistificando o desenvolvimento de games e mercado de trabalho

5 Mecanismo de seleção de componentes

Manual do Usuário Android Neocontrol

Introdução a Computação Móvel

UM FRAMEWORK PARA DESENVOLVIMENTO DE

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Apostila para o 7º ano Profª Yandra

Artur Petean Bove Júnior Tecnologia SJC

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Orientação a Objetos

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

LEAS ONLINE: PROTÓTIPO DE UM JOGO DE MMORPG

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Um Driver NDIS Para Interceptação de Datagramas IP

PROJETO INFORMÁTICA NA ESCOLA

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

COMO USAR DOIS MONITORES NO WINDOWS 8

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

O que é o Android? O que é o Android

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

2 Diagrama de Caso de Uso

Sistemas Operacionais

VERSÃO 1 PRELIMINAR MÓDULO 3 - PRESENCIAL

Wilson Moraes Góes. Novatec

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

ESTUDO DE CASO WINDOWS VISTA

AULA 2. Aspectos Técnicos. Luciano Roberto Rocha. MBA em Marketing Digital SOCIAL GAMES

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Usando o Arena em Simulação

Manual de instalação e configuração da Ferramenta Android SDK

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Aula 1 Introdução, e conhecendo a Área de Trabalho

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Princípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Sistemas Operacionais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

3 - Projeto de Site:

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Microsoft Office PowerPoint 2007

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA PRÓ-REITORIA ACADÊMICA NÚCLEO DE EDUCAÇÃO EM AMBIENTES DIGITAIS NEAD

4 Um Exemplo de Implementação

Feature-Driven Development

SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor

IW10. Rev.: 02. Especificações Técnicas

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Sistemas Distribuídos

Projeto Arquitetural do IEmbedded

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Por que Office 365? Office 365 Por que usar?

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Sistemas Operacionais Introdução

Engenharia de Requisitos Estudo de Caso

Apostila de Windows Movie Maker

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Symbian

TRBOnet MDC Console. Manual de Operação

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Planejando o aplicativo

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Análise de Dados do Financeiro

Engenharia de Software III

Lógica de Programação

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

Acadêmico: Maicon Machado Orientador: José Carlos Toniazzo

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Implementação de um módulo simulador de robôs baseado em Unity3D para o SimBot - Simulador de Robôs para Lego NXT.

Persistência e Banco de Dados em Jogos Digitais

Sistemas de Informação I

Trabalho GA - Editor de Cenário Parallax

AULA 06 CRIAÇÃO DE USUÁRIOS

RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE)

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Transcrição:

O USO DA ANDENGINE COMO MOTOR DE DESENVOLVIMENTO DE JOGOS EM 2D PARA DISPOSITIVOS MÓVEIS COM ANDROID Carlos Alberto Fernandes Medeiros 1, Eduardo Mendes de Oliveira 2 RESUMO Os dispositivos móveis estão cada vez mais sendo acrescidos de novas funcionalidades, que vão além da telefonia propriamente dita. Aliando a isto, a flexibilidade de utilização destes aparelhos os tem tornado cada vez mais populares criando um cenário propício para, entre outras possibilidades, o desenvolvimento de jogos. No contexto da mobilidade, uma das plataformas que vem crescendo neste mercado é a Android, baseada em Java e Linux e disponibilizada em forma de código aberto. O objetivo deste artigo é apresentar e descrever o uso da AndEngine, um motor para auxiliar na criação de jogos em 2D para dispositivos móveis que utilizam a plataforma Android. Palavras-chave: android, jogos, andengine, processos, game design. ABSTRACT Mobile devices are more and more being increased to new features, which goes beyond the phone itself. Allying to this, the flexibility of using these devices has become increasingly popular creating a favorable scenario, among other possibilities, the development of games. In the mobility context, a platform that is growing in this market is Android, that is based on Linux and Java and provided in the open source way. The objective this paper is to present and describe the use of AndEngine, a game engine to assist in the creation of 2D games for mobile devices using the Android platform. Keywords: android, games, andengine, process, game design. INTRODUÇÃO Os computadores pessoais (personal computers - PCs) juntamente com a internet revolucionaram a forma das pessoas se comunicarem, trazendo novos meios e possibilidades de se conectar em tempo real através de textos, de vídeo e de áudio. Neste contexto, um grupo de softwares e de aparelhos tem incrementado ainda mais esta 1 Acadêmico do curso de Sistemas de Informação, Faculdade Sete de Setembro (FA7), carlosalbertofernanddes@gmail.com 2 Mestre em Engenharia de Teleinformática, Professor do curso de Sistemas de Informação da Faculdade Sete de Setembro (FA7), eduardomendes@fa7.edu.br

revolução, oferecendo informação em qualquer lugar e a qualquer hora: os dispositivos móveis. Nestes aparelhos, o usuário pode realizar operações tais como consultar e-mail, fazer transações bancárias, navegar na web, acessar entretenimento, entre muitas outras possibilidades independente de onde esteja. Isso permite uma flexibilidade que os PCs não poderiam oferecer. Uma das oportunidades que surge deste mercado tão flexível é o desenvolvimento de jogos. Quem já possui um aparelho é capaz de executar um jogo, sem a necessidade de comprar nenhum outro dispositivo a mais. Segundo Canalys (2011), houve, recentemente, um incremento no número de aparelhos que utilizam a plataforma Android, que agora possui uma quota de 35% do mercado. Com este aumento de dispositivos móveis executando tal sistema, cria-se um cenário propício para que desenvolvedores criem jogos de entretenimento para esta plataforma. Assim como em outras plataformas para jogos, existem diversos motores e frameworks que facilitam a criação e o desenvolvimento daqueles, abstraindo certos detalhes de programação envolvidos e agilizando a entrega do produto final. Neste contexto, este artigo apresenta e descreve a AndEngine, um motor de código aberto para o desenvolvimento de jogos (OLIVEIRA, 2011) em 2D na plataforma Android e que possui uma série de classes e bibliotecas que auxiliam a tarefa de desenvolver estes jogos. No final, apresenta-se um jogo desenvolvido com este motor, de modo a demonstrar um exemplo prático de utilização da AndEngine. 1 ESTRUTURA DO ANDROID A estrutura do Android consiste em uma pilha de software que inclui um sistema operacional, middleware e aplicações (ANDROID, 2011). Para se desenvolver nesta plataforma é necessário utilizar o Android SDK 3 que dispõe de um conjunto de ferramentas e APIs 4. A linguagem de programação utilizada pelo o Android é a linguagem Java, que é executada por uma máquina virtual, a Dalvik Virtual Machine (Dalvik VM), utilizada para otimizar o consumo de memória e os recursos de hardware. A Figura 1 mostra os principais componentes do sistema Android. 3 Conjunto de ferramentas necessárias para se desenvolver em Android (ANDROID, 2011) 4 Application Programming Interface Interface de programação de aplicativos.

Figura 1 Principais componentes do sistema Android Fonte: (ANDROID, 2011) Segundo Speckmann (2008, p.12), a pilha de software é dividida em quatro diferentes camadas, que inclui cinco diferentes grupos: applications, application framework, libraries, android runtime e linux kernel 5. 2 JOGOS BASEADOS EM COMPUTADORES Os jogos estão se tornando cada vez mais populares nos últimos anos (DAWES, 2010). O mercado de jogos para dispositivos móveis está ganhando mais espaço no cenário antes dominado por vídeo games caseiros e PCs. Estes dispositivos possuem a vantagem do usuário conseguir jogar a qualquer hora e em qualquer lugar. Visando ganhar uma maior produtividade no desenvolvimento deste mercado, os desenvolvedores podem utilizar engines. A seguir será apresentado o conceito de engine, bem como exemplos desta tecnologia para a plataforma Android. 2.1 DEFINIÇÃO DE GAME ENGINE Uma engine de jogos é uma coleção integrada de vários algoritmos que juntos são executados em um vídeo game, englobando módulos como: gráficos 2D e/ou 3D, 5 Sofware que possui acesso aos dados do sistema e hardware. (STALLINGS, 2008, p.84)

físico/detecção de colisão, entrada e saída, áudio, inteligência artificial, animação, banco de dados, rede e interface gráfica de usuário (STANG, 2003). Para auxiliar no desenvolvimento de jogos 2D para os dispositivos móveis podem-se utilizar algumas engines específicas, como: Cocos2d (COCOS2D, 2011), Rokon (ROKON, 2011), Corona (CORONA, 2011) e AndEngine (ANDENGINE, 2011). A Cocos2d é uma engine open source voltada para a construção de jogos e aplicações interativas; já o Rokon é uma engine OpenGL 6 open source desenvolvida para executar jogos em dispositivos Android; a Corona é utilizada para o desenvolvimento de jogos para múltiplas plataformas. Esta última não é open source e utiliza OpenGL juntamente com a linguagem Lua 7. Por último, a AndEngine é uma engine open source voltada para o desenvolvimento de jogos para a plataforma Android. A motivação para se implementar um jogo, e fazer um estudo sobre os conceitos nesta engine, é o fato de ela estar sendo bastante divulgada e procurada pelas comunidade de desenvolvedores de Android, já existindo vários jogos implementados (ANDENGINEWIKI, 2011). Além disso, ela possui uma série de classes e bibliotecas que aumentam a produtividade, de modo que elas abstraem o desenvolvimento de alguns recursos, como por exemplo, detecção de colisão, o uso de touch screen, o tratamento para diferentes tipos de resolução de tela dos diversos dispositivos, o tratamento de mapas, todo esse suporte que a AndEngine oferece facilita no momento da implementação. Entretanto, a AndEngine não possui uma documentação bem definida, logo este estudo poderá servir como uma fonte de pesquisa para outros trabalhos, pois além de explicar alguns conceitos sobre seus componentes, é apresentado um jogo exemplificando estes conceitos na prática. A seguir são apresentadas as características de alguns módulos utilizados por uma engine. 2.1.1 ENTRADA/ SAÍDA O módulo de entrada/saída é responsável por processar as entradas e saídas do jogo para o jogador. Uma maneira de o jogador fornecer estas entradas e receber tais 6 Biblioteca utilizada na computação gráfica para o desenvolvimento de aplicações, tais como sistemas de visualizações e jogos. 7 Linguagem de script desenvolvida na Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO). (LUA, 2011)

saídas é através dos Human Interface Devices 8 (HIDs), que inclui joysticks, teclados, mouses ou outro dispositivo específico para um determinado jogo, como o uso de guitarra, volantes, controles de captura de movimento, dentre outros. Dependendo do dispositivo utilizado o jogador pode receber diferentes respostas para uma determinada ação, desde vibrações no controle até mudanças de luzes em controles de captura de movimento. As figuras a seguir mostram alguns HIDs que são utilizados pelos jogadores em diversos consoles. Figura 2 Acessório do vídeo game Nintendo Wii utilizado em jogos de corrida Fonte: (NINTENDO, 2011) Figura 3 Acessório específico voltado para jogos de música Fonte: (GUITARHERO, 2011) 2.1.2 MÓDULO FÍSICO O módulo físico é responsável por aplicar as leis da física nos objetos de um game (THORN, 2010, p. 14). Seu propósito é gerenciar e controlar, em tempo de execução, o comportamento dos objetos e seus relacionamentos com as leis da física de acordo com uma determinada cena. Atualmente os desenvolvedores dispõem de diversas bibliotecas para facilitar no desenvolvimento deste módulo em um jogo. 8 Dispositivo de Interface Humana

2.1.3 ANIMAÇÃO Qualquer jogo que utilize personagens orgânicos ou semi-orgânicos (humanos, animais, personagens de desenhos animados ou robôs) necessita de um sistema de animação. Há cinco tipos básicos de animação usados em jogos: animação de sprites e texture, animação de corpos rígidos, animação baseada no esqueleto, animação de vértices e morph targets 9 (GREGORY, 2009). 2.1.4 INTELIGÊNCIA ARTIFICIAL (IA) A base deste módulo refere-se a um conjunto de funções e algoritmos que auxilia o computador à pensar por ele mesmo. Através da IA empregada em um jogo o computador poderá evitar obstáculos, traçar rotas que devem ser percorridas em um ambiente virtual, elaborar estratégias de combate contra jogadores, dentre outras funções (THORN, 2010). 2.1.5 REDE Este módulo é responsável por permitir que múltiplos jogadores possam jogar simultaneamente. Jogos multiplayer termo que geralmente é empregado a um jogo que oferece suporte a múltiplos jogadores possuem as seguintes variações: singlescreen multiplayer, split-screen multiplayer, network multiplayer, massively multiplayer online games (GREGORY, 2009). 2.1.6 ÁUDIO Módulo responsável por reproduzir conteúdos sonoros como música de fundo, efeitos sonoros, fala de personagens, dentre outros. 3 ANDENGINE O aumento de dispositivos móveis executando o sistema Android, consequentemente aumenta a oportunidade para que desenvolvedores criem jogos de entretenimento. Desta forma, para ganhar uma maior produtividade se faz necessário o 9 Utilizado para modificar a face de um personagem para obter diversas expressões faciais. (ALBEE, 2004, p.412)

uso de engines. A AndEngine, um motor de código aberto para o desenvolvimento de jogos (OLIVEIRA, 2011), auxilia através de suas bibliotecas o desenvolvimento destes jogos. Esta engine possui algumas características como suporte a split screen, network multiplayer, multi touch, dentre outras (ANDENGINE, 2011). A seguir, apresenta-se uma visão geral da AndEngine. 3.1 VISÃO GERAL Para iniciar o desenvolvimento de um jogo na AndEngine se faz necessário conhecer algumas classes básicas comumente utilizadas. A seguir, apresentam-se estas classes. 3.1.1 BASEGAMEACTIVITY A classe BaseGameActitivity é considerada a raiz de um jogo, contendo uma Engine que gerencia a criação de um Surface View, local onde será desenhado o conteúdo da Engine. Esta classe está localizada no pacote org.anddev.andengine.ui.activity. É possível passar de uma BaseGameActivity para outra utilizando mecanismos comuns Android. 3.1.2 ENGINE A Engine é a responsável por fazer o jogo avançar em pequenos passos discretos no tempo. Capaz de gerenciar e sincronizar um desenho e a atualização periódica da Scene (local que contém todo o conteúdo que está sendo manipulado ativamente no jogo). Geralmente, é comum existir uma Scene por Engine, porém há uma exceção quando se utiliza SplitScreenEngines. A classe Engine está localizada no pacote org.anddev.andengine.engine. 3.1.3 IRESOLUTIONPOLICY A interface IResolutionPolicy faz parte da EngineOptions. Esta interface diz a AndEngine como ela deve lidar com os diferentes tamanhos de tela dos diversos dispositivos. Por exemplo, a classe RatioResolutionPolicy irá maximizar o SurfaceView, de modo a limitar o tamanho da tela, mantendo uma relação de largura e altura

específica. A interface IResolutionPolicy faz parte do pacote org.anddev.andengine.engine.options.resolutionpolicy. 3.1.4 CAMERA A classe Camera define um retângulo da cena que é desenhado na tela, como se toda a cena não estivesse visível o tempo todo. Normalmente há uma Camera por Scene, exceto quando se utiliza SplitScreenEngines. Há subclasses como ZoomCamera e SmoothCamera que permitem realizar alterações de zoom e mudanças suaves na Camera. Esta classe se encontra no pacote org.anddev.andengine.engine.camera. 3.1.5 SCENE A classe Scene pacote org.anddev.andengine.entity.scene - é o contêiner raiz de todos os objetos a serem desenhados na tela. Uma Scene possui uma quantidade determinada de camadas, os quais podem conter um valor (fixo ou dinâmico) de Entities. Há subclasses como, o CameraScene/ HUD/ MenuScene que são desenhadas na mesma posição não importando onde esteja posicionada a câmera. 3.1.6 ENTITY Entity é um objeto que pode ser desenhado, como Sprites, Rectangles, Texts ou Lines. Uma Entity possui algumas propriedades como: position/ rotation/ scale/ color, entre outros. A classe Entity faz parte do pacote org.anddev.andengine.entity. A seguir, a Error! Reference source not found. apresenta o relacionamento entre as classes da AndEngine. Figura 4 Diagrama de classe mostrando o relacionamento entre as classes da AndEngine Fonte: Próprio Autor

4 DEMONSTRAÇÃO DE UM JOGO USANDO A ANDENGINE Com base nos conceitos abordados nas seções anteriores, foi obtido o conhecimento necessário para desenvolver o jogo que será apresentado utilizando a AndEngine. Este estudo busca apresentar um exemplo prático utilizando a AndEngine. Para isso foi utilizado um sistema que simula um ambiente Android. Nesta seção serão abordadas as estruturas do jogo concebido e desenvolvido com o auxílio do processo game design e cada seção apresentará os elementos, detalhes e funcionamento do jogo, fazendo-se uso de figuras para ajudar a visualizar os argumentos discutidos. 4.1 GAME DESIGN A concepção do jogo foi realizada através de um processo chamado game design. Este processo engloba as seguintes etapas: imaginar um jogo, definir seu funcionamento, descrever os elementos que irão compor o jogo (conceitos, fundamentos), dentre outros (ADAMS, 2009, p. 29). 4.1.1 IDÉIA DO JOGO A idéia primordial do jogo é fazer o personagem principal, denominado de monstro da floresta, acertar uma fruta durante um número determinado de vezes. Para isso ele se utilizará de sua própria roupa, lançando-a contra a fruta. 4.1.2 ELEMENTOS DO JOGO Os elementos contidos no jogo são o personagem principal monstro da floresta, a fruta alvo que dever ser acertado pelo personagem principal, o score que contabiliza os acertos do jogador e o plano de fundo que é representado por uma floresta. A Error! Reference source not found. detalha estes elementos na cena do jogo.

Figura 5 Elementos contidos no jogo AndEngine Fonte: Próprio Autor 4.1.3 DETALHES DO JOGO O objetivo está centrado no jogador acertar a fruta um determinado número de vezes. Caso acerte, a fruta irá diminuir sua quantidade até restar apenas uma. Porém cada acerto faz com que a fruta se mova cada vez mais rápido, de modo a dificultar um novo acerto. O jogo também possui alguns requisitos como o jogador poder apenas se movimentar na vertical, não poder ultrapassar o limite superior e inferior da tela, exibir uma mensagem ao usuário informando que teclas utilizar e a quantidade de acertos, encerrar o jogo quando a última fruta for acertada. O usuário será capaz de movimentar o personagem principal através das teclas para cima e para baixo do teclado e disparar contra a fruta utilizando a tecla espaço. As seguintes figuras demonstram alguns detalhes do jogo. Figura 6 Exibição de uma mensagem de texto para informar qual botão utilizar para disparar contra a fruta Fonte: Próprio Autor

Figura 7 Demonstração da mecânica do jogo Fonte: Próprio Autor 4.2 IMPLEMENTAÇÃO Nesta seção será apresentada uma breve descrição de como os métodos onloadengine(), onloadresources(), onloadscene() foram implementados neste jogo. Esta seção visa mostrar na prática a utilização destes métodos que são a base para executar um jogo na AndEngine. A Error! Reference source not found. mostra o fluxo necessário para criar uma game engine. Figura 8 Diagrama de Atividades do método onloadengine

Fonte: Próprio Autor 4.2.1 DESENVOLVIMENTO DO MÉTODO ONLOADENGINE() Neste método foi inserida uma mensagem de texto que informará ao usuário qual botão utilizar para disparar contra a fruta. Em seguida, foram definidas as propriedades da Camera e as propriedades da Engine através da EngineOptions. A Error! Reference source not found. apresenta a implementação do método onloadengine() no estudo de caso Figura 9 Implementação do método onloadengine no estudo de caso Fonte: Próprio Autor 4.2.2 DESENVOLVIMENTO DO MÉTODO ONLOADRESOURCES() Neste método foram inseridos todos os recursos que serão utilizados durante o jogo, como imagens, textos, opções de texturas além de informar o diretório das

imagens. A Error! Reference source not found. apresenta a implementação do método onloadresources() no estudo de caso. Figura 10 Implementação do método onloadresources no estudo de caso Fonte: Próprio autor A Error! Reference source not found. mostra o fluxo necessário para carregar os recursos do jogo através do método onloadresources(). Figura 11 Diagrama de Atividades do método onloadresources Fonte: Próprio Autor 4.2.3 DESENVOLVIMENTO DO MÉTODO ONLOADSCENE() Neste método foram inseridos todos os recursos que serão utilizados durante o jogo, como imagens, textos, opções de texturas além de informar o diretório das imagens. A Error! Reference source not found. apresenta a implementação do método onloadscene() no estudo de caso.

Figura 12 Implementação do método onloadscene no estudo de caso Fonte: Próprio Autor A Error! Reference source not found. mostra o fluxo necessário para criar uma cena através do método onloadscene(). Figura 13 Diagrama de Atividades do método onloadscene Fonte: Próprio Autor CONSIDERAÇÕES FINAIS Este artigo apresentou um exemplo prático utilizando a AndEngine para a criação de um jogo em 2D através de um sistema que simula um ambiente Android. Ao longo do artigo foram abordados diversos assuntos de modo auxiliar no desenvolvimento deste jogo, quais sejam: mostrar a estrutura do Android, abordar o conceito de engine e seus módulos, apresentar e explicar as funções e as relações entre

classes e métodos da AndEngine, exemplificar como se utilizar estes métodos e definir as propriedades das classes de modo a executar o jogo apresentado. Atavés do estudo realizado foi possível compreender o funcionamento da AndEngine e descrever um processo de desenvolvimento de jogos utilizando-se deste motor. O processo foi descrito com o auxílio de diagramas de atividades e as classes principais do motor foram descritos através de um diagrama de classes, ambos diagramas da UML. Estes artefatos podem esclarecer e auxiliar futuros desenvolvimentos de quem deseja utilizar a AndEngine. Ao longo do estudo, a AndEngine se mostrou uma opção interessante para desenvolver jogos para Android, pois além de possuir recursos que facilitam o desenvolvimento, ela também é totalmente gratuita e possui vários exemplos implementados que auxiliam no aprendizado daqueles que buscam estudá-la. REFERÊNCIAS BIBLIOGRÁFICAS (ADAMS, 2009) ADAMS, Ernest. Fundamentals of game design. 2. ed., Amsco Plublications, 2009. (ALBEE, 2004) ALBEE, Timothy. LightWave 3D 8 character animation. 2. ed., Wordware Publishing, 2004. (ANDENGINE, 2011) AndEngine free Android 2D OpenGl Engine. Disponível em: http://code.google.com/p/andengine. Acesso em: 10 de maio de 2011. (ANDENGINEWIKI, 2011) AndEngine wiki. Disponível em: http://wiki.andengine.org/list_of_apps_and_games. Acesso em: 18 de maio de 2011. (ANDROID, 2011) What is Android. Disponível em: http://developer.android.com/guide/basics/what-is-android.html. Acesso em: 18 de fevereiro de 2011. (CANALYS, 2011) Canalys. Disponível em: http://www.canalys.com/pr/2011/r2011051.html. Acesso em: 11 de maio de 2011. (COCOS2D, 2011) cocos2d. Disponível em: http://cocos2d.org/. Acesso em: 28 de abril de 2011. (DAWES, 2010) DAWES, Adam. Windows mobile game development: Building games for Windows Phone and other mobile devices. Apress, 2010. (GREGORY, 2009) GREGORY, Jason. Game engine architecture. A K Peters, 2009. (GUITARHERO, 2011) Guitar hero images. Disponível em: http://hub.guitarhero.com/media/images. Acessado em: 29 de abril de 2011.

(LUA, 2011) A linguagem de programação Lua. Disponível em: http://www.lua.org/portugues.html. Acessado em: 24 de março de 2011. (NINTENDO, 2011) Nintendo wii. Disponível em: http://www.nintendo.com/wii/console/accessories. Acessado em: 28 de abril de 2011. (OLIVEIRA, 2011) OLIVEIRA, Eduardo Mendes de. AndEngine breve introdução. Disponível em: http://prezi.com/yqba2bi5vpcy/andengine-breve-introducao/. Acessado em: 24 de março de 2011. (ROKON, 2011) Rokon. Disponível em: http://code.google.com/p/rokon/. Acessado em: 28 de abril de 2011. (SPECKMANN, 2008) SPECKMANN, Benjamin. The Android mobile platform. 2008. 112f. Dissertação (Mestrado em Ciência da Computação) Curso de mestrado em Ciência da Computação, Eastern Michigam University, Michigan, 2008. (STANG, 2003) STANG, Bendik. Game engines: Features and possibilities. Institute of Informatics and Mathematical Modeling at the Technical University of Denmark, 2003. (STALLINGS, 2008) STALLINGS, William. Operating systems: Internals and Design Principles. 6. ed., Prentice Hall, 2008. (THORN, 2010) THORN, Alan. Game engine design and implementation. Jones & Bartlett Publishers, 2010.