Visualizar
Transcrição
Visualizar
JIM 2014 - V Jornada de Informática do Maranhão Utilizando os conceitos de programação orientada a objetos para a criação do jogo DrunkMan. Paula Myrian Lima Pedroso, Edilson Carlos Silva Lima Ciências da Computação – Faculdade Pitágoras São Luis – MA – Brasil {paulamyrian,edilsonlima3}@gmail.com Abstract. The main objective for the development of this project was put into practice the concepts of Object Oriented Programming (OOP) through a game. The dominant criteria for the assessment of this application are: software quality, multiplatform support, class diagrams, use cases, and sequence, the source code documentation and layout. The tools used for this project were: NetBeans IDE for deployment as source, creating the layout and test stand program behavior in a mobile, J2ME library, Fireworks for editing images, Audacity for editing audio and Astah for drawing diagrams. Keywords: OOP; Multiplatform; Diagrams to analyze the game. Resumo. O objetivo principal para a elaboração deste projeto foi pôr em prática os conceitos de Programação Orientada a Objetos (POO) através de um jogo. Os critérios dominantes para a avaliação deste aplicativo serão: qualidade do software, o suporte a multiplataforma, os diagramas de classe, casos de uso e sequência, a documentação do código fonte e o layout. As ferramentas utilizadas para a realização deste projeto foram: o NetBeans como IDE para implementação do código fonte, a criação do layout e testar o suporto comportamento do programa em um celular, a biblioteca J2ME, o Fireworks para edição das imagens, o Audacity para edição do áudio e o Astah para a elaboração dos diagramas. Palavras chave: POO; Multiplataforma; Diagramas para análise do Jogo. 1. Introdução Com intenção de aprimorar os conhecimentos de POO e entreter os usuários, foi desenvolvido um jogo chamado DrunkMan, do estilo aventura que tem os gráficos em duas dimensões (2D), que tem como objetivo levar o personagem até um determinado lugar, no caso a sua casa, sem colidir com os obstáculos que virão de acordo com o decorrer do jogo. Os obstáculos são objetos do dia a dia das pessoas que passam na rua como: pedras, poste, banco, hidrante e outros. Ele tem como o objetivo divertir e levar o usuário a prender a atenção, desafiando-o nas fases do jogo. Este artigo está dividido em três tópicos principais: fundamentação teórica, análise do aplicativo e a conclusão. A análise do aplicativo possui cinco subtópicos que por sua vez irão analisar cada parte dos requisitos necessários para a elaboração de um jogo e a fundamentação teórica possui três subtópicos que demonstram os diagramas necessários para a elaboração do mesmo e os conceitos de orientação a objetos. JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão Por ser um aplicativo para dispositivos móveis, foi necessário a utilização de uma biblioteca específica. A escolhida foi a J2ME (Java Micro Edition), uma biblioteca que oferece um ambiente robusto e flexível para aplicativos executados em dispositivos móveis e integrados (celulares, dispositivos de mídia digital, impressoras...). 2. Fundamentação Teórica O teste de software é um processo para determinar a qualidade do software desenvolvido (PEREIRA, 2013). Para avaliar um software é necessário que haja a documentação do mesmo, os diagramas básicos e uma cópia do projeto. A avaliação do aplicativo foi feita no computador, portanto a extensão utilizada nos diagramas que representam o programa está em formato executável (.exe). 2.1. Diagrama de Casos de Uso O diagrama de casos de uso descreve quais são as funções básicas que serão propostas para um novo sistema, ou seja, corresponde a uma visão externa do sistema representando ela através de gráficos (NETO, 2007). Conforme mostra a Figura 1, o diagrama de casos de uso do aplicativo DrunkMan, o usuário irá observar o personagem e também terá a possibilidade de clicar nas teclas para movimenta-lo no sentido horizontal, podendo somente ir para a esquerda ou para a direita, pois o personagem por padrão se movimenta verticalmente (para frente). Dentro da aplicação, o dever do ator da ação (personagem) é somente obedecer o seu padrão de andar para frente e, juntamente, obedecer aos comandos do usuário. Dependendo do desempenho do jogador, o personagem pode ou não chegar ao fim da aplicação, que nesse caso é o quarto de descanso. Figura 1. Diagrama de casos de uso do jogo DrunkMan. JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão 2.2. Diagrama de Sequência O diagrama de sequência descreve como os grupos de objetos do sistema irão se comportar ao longo do tempo (MACORATTI, 2004). Assim exposto na Figura 2, o diagrama de sequência mostra a possível ordem de usabilidade do aplicativo de acordo com as características básicas dele. Figura 2. Diagrama de Sequência do jogo DrunkMan. O usuário terá a função de pressionar os botões de movimentação do personagem dentro do jogo e visualizará todo o desenrolar do jogo de acordo com a ação que ele produzir, sendo que a movimentação é necessária para desviar dos obstáculos que aparecerão na frente do personagem. O protagonista do jogo irá obedecer o que o jogador pedir para fazer (andar para esquerda ou direita), lembrando sempre do seu movimento padrão (andar para frente), até chegar ao final do objetivo (chegar ao quarto). 2.3. Diagrama de Classe É uma representação estrutural e relacional de classes para modelagem, ou seja, define todas as classes que o sistema vai precisar na base de sua construção (MACORATTI, 2004). Como representado na Figura 3, o diagrama traduz em tabelas tudo que o sistema vai possuir: um usuário, um personagem e sua movimentação. JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão Figura 3. Diagrama de Classe do jogo DrunkMan. A classe Usuário possui os atributos iniciar (que terá a possibilidade de começar a utilizar o aplicativo), atualizar (que refere-se aos comandos utilizados para avançar para outras páginas do programa) e com o método pressionar tecla (função atribuída ao jogador). A classe Personagem está implementada na classe Usuário, com os atributos obstáculos (modos de colisão), desviar (modos de movimentação) e com o método movimentar (dependendo do método pressionar tecla da classe Usuário). A classe Movimento está associada a classe Personagem, com os atributos direita, esquerda e com o método andar (padrão para essa aplicação). 2.4. Conceitos de POO Para Farinelli (2007, p. 3): A orientação a objetos é uma tecnologia que enxerga os sistemas como sendo coleção de objetos integrantes. Ela permite melhorar a reusabilidade e extensibilidade dos softwares. A tecnologia orientada a objetos é fundamentada no que, coletivamente, chamamos de modelo de objetos, que engloba os princípios da abstração, hierarquização, encapsulamento, classificação, modularização, relacionamento, simultaneidade e persistência. A programação orientada a objetos, usa-se um conjunto de classes que iram definir os objetos presentes em um sistema de software. Cada classe define o comportamento (chamado de métodos) e os possíveis estados (chamados de atributos) de seus objetos, também com o relacionamento com outros objetos. Existem muitos tipos de linguagens que utilizam a orientação a objetos, como: C++, Java, Ruby e Python. Esse projeto em questão utilizou a linguagem Java. 3. Análise do Aplicativo Antes mesmo de começar a elaborar uma aplicação, foi necessário começar a desenvolver um diferencial para o projeto. Começando por criar um enredo para contar a história do personagem, mais como uma explicação de como chegamos a essa JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão narrativa. Depois foi projetado um protótipo para testes, para a verificação de erros e acertos. Por fim, a análise do jogo a partir de testes e verificação do código fonte. 3.1. História do Jogo Para a realização do projeto foi necessário criar uma história para que o jogo fizesse sentido. De acordo com Evan Narcisse, você não precisa de uma boa justificativa narrativa para curtir esses jogos, mas um jogo pode ser bem mais marcante quando se tem uma. DrunkMan ou “Homem Bêbado” da tradução do inglês, conta a história de um homem que precisa voltar para casa depois de beber muito em um bar, a ponto de se embriagar. O usuário terá a missão de levar o personagem em casa, em um caminho que possui muitos obstáculos, desviando-se até chegar na sua residência, que terá mais uma dificuldade: a suposta mulher (o “boss” ou chefão do jogo) dele começa a atirar coisas na sua direção, deixando a fase mais difícil. O objetivo central do game é levar o personagem em casa, com segurança, e leva-lo até o quarto para dormir. 3.2. Protótipo Antes de decidir como seria o personagem principal, foram feitos testes com desenhos aleatórios da internet. O site spriters-resource possui uma variedade de sprites (imagens utilizadas para fazer a movimentação do personagem sem deixar rastros) gratuitos que o desenvolvedor pode usar para suas aplicações. Alguns exemplos das imagens estão demonstrados na Figura 4A (à esquerda). A Figura 4B (à direita) mostra como ficou a utilização de algumas dessas imagens no protótipo do jogo. Figura 4A. Alguns Sprites utilizados no protótipo do jogo DrunkMan, Fonte. The Spriters Resource (2013). Figura 4B. Protótipo do Jogo DrunkMan. 3.3. Aplicativo Após a implementação dos códigos com imagens de teste, iniciaram-se os testes do jogo com imagens próprias. Os desenhos foram feitos em uma folha comum e depois escaneados para serem editados no Fireworks, uma ferramenta da Adobe (mesma produtora do Photoshop) como mostrado na Figura 5. JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão Figura 5. Edição da tela de splash screem no aplicativo Fireworks. Após a edição dos desenhos, foi utilizado o Audacity para editar o som de autoria própria. De acordo com Karen Collins, a trilha sonora é de extrema importância em um jogo e possui várias funções (SCHAFER, 2013). A principal função de um som em um jogo é a maximização da interatividade entre o jogador e a história. A terceira implementação foi a criação do splash screem, uma tela inicial que tem um determinado período de tempo para ficar ativa, ou seja, uma apresentação do aplicativo. A Figura 5 mostra a edição dessa tela de apresentação. Quanto a mudança entre o protótipo e a aplicação final, se fixou somente às imagens, o código continuou o mesmo, com algumas mudanças para arrumar os erros encontrados no código do protótipo. O resultado final é demonstrado na Figura 6. Figura 6. Parte da imagem do jogo DrunkMan sendo rodado. 3.4. Aplicação dos conceitos de POO O projeto foi criado na linguagem Java, que por sua vez é orientada a objetos, então foi necessário a utilização dos conceitos de POO para a criação deste jogo. Foram utilizadas seis classes que agrupam os códigos fonte e se interligam, com o resultado sendo mostrado na tela do dispositivo móvel por uma classe específica chamada Midlet, aplicação escrita na linguagem Java para pequenos dispositivos (VIDOLIN, 2009). JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão Quanto aos objetos, foram utilizados três: o jogo, o menu e a tela de splash, como mostrado na Figura 6. Figura 7. Criação dos objetos. O objeto splash possui somente um atributo, que é mostrar a imagem que está sendo editada como mostrado na Figura 5. Esse mesmo objeto possui o método pintar, que vai fazer com que a imagem seja exibida (pintada) na tela. A classe Midlet chama o objeto splash para mostrar o seu método na tela principal. A classe Splashscreen herda da classe Canvas, que representa uma área retangular em branco da tela para que o aplicativo possa desenhar nela. Como mostrado na Figura 7, o objeto game foi protegido, ou seja, ele foi encapsulado. A interface dele foi editada na classe Design, pois ela é responsável por toda a parte visual do jogo. Foram criados três pacotes: Códigos, Imagens e Músicas, para ajudar na organização dos recursos usados para a elaboração desse projeto. 4. Conclusão De acordo com as expectativas iniciais, o aplicativo satisfez o que foi proposto para o projeto. A aprendizagem do conteúdo de programação orientada a objetos foi adequadamente aplicada nas funções da criação do jogo. Podendo ser reutilizado em outros modelos de jogos que utilizem o recurso de desvio de obstáculos com velocidade constante. Para projetos futuros será proposto a criação de novas fases e novos objetivos para o personagem, pois uma das finalidades do jogo é a proporcionar entretenimento para quem é usuário desse tipo de aplicativo. Contudo, além de acrescentar aprendizados sobre a linguagem JAVA, a criação desse programa nos proporcionou um conhecimento maior com relação ao meio interativo, pois gerou a oportunidade de criar uma história que pode proporcionar diversão com o uso desse instrumento de comunicação que só vem conquistando mais espaços no meio tecnológico ao longo dos anos. Referências PEREIRA, Vitor. Testes e mais testes... O porquê dos testes de software. Disponível em: < http://vitormeriat.com.br/2013/01/28/testes-e-mais-testes-o-porqu-dos-testesde-software/ >. Acesso em: 28 nov. 2013. The Spriters Resource. Disponível em: < http://www.spriters-resource.com >. Acesso em 08 abr. 2013. JIM, 2014. ISSN: 2358-8861 JIM 2014 - V Jornada de Informática do Maranhão NETO, Elói Rocha. Casos de Uso. Disponível http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/usecases/usecases.htm >. Acesso em: 08 abr. 2013. em: < MACORATTI, José Carlos. UML – Diagramas de Classes e objetos. Disponível em: < http://www.macoratti.net/net_uml1.htm>. Acesso: 08 abr. 2013. FARINELLI, Fernanda. Conceitos básicos de programação orientada a objetos. Disponível em: < http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/1662272077_POO.pdf >. Acesso em: 28 nov. 2013. SCHAFER, Camila. A importância da música nos games. Disponível em: < http://www.netmusicos.com.br/a-importancia-da-musica-nos-games/ >. Acesso em: 28 nov. 2013. VIDOLIN, Marcos Alexandre. MIDlet: Introdução ao J2ME. Disponível em: < http://marcosvidolin.wordpress.com/2009/09/05/midlet-introducao-ao-j2me/ >. Acesso em: 28 nov. 2013. SOUZA, Cleidson. Conceitos de Orientação a Objetos. Disponível em: < http://www.ufpa.br/cdesouza/teaching/es/3-OO-concepts.pdf >. Acesso em 28 nov. 2013. NARCISSE, Evan. De Gears of War a Dead Space: o que há de errado com as histórias nos games?. Disponível em: < http://www.kotaku.com.br/de-gears-of-war-a-deadspace-o-que-ha-de-errado-com-as-historias-nos-games/ >. Acesso em: 28 nov. 2013. JIM, 2014. ISSN: 2358-8861