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