Logo Passei Direto
Buscar

APS - Jogo Java

User badge image
Guillian Meap

em

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Página 5
JOGO - PROTEGENDO A PRAIA
SÃO PAULO
2018
JOGO - PROTEGENDO A PRAIA
Trabalho da APS do segundo semestre de 2018
Referente ao curso de Ciências da Computação
Orientador: Prof. Leandro C. Fernandes
SÃO PAULO
2018
Índice
1- Objetivo e Motivação do Trabalho .................................................. p. 04
2- Introdução ........................................................................................ p. 05
3- Regras do Jogo (Conceitos Gerais) ............................................... p. 07
4- Projeto e Estrutura do Programa .................................................... p. 11
4.1 - Classe Atirador ............................................................................. p. 11
4.2 - Classe JaneladeAbertura ............................................................... p. 11
4.3 - Classe Level ................................................................................. p. 12
4.4 - Classe Level1 ............................................................................... p. 12
4.5 - Classe Menu ................................................................................. p. 13
4.6 - Classe ProgramaPrincipal .............................................................. p. 13
4.7 - Classe Sujeira ............................................................................... p. 13
4.8 - Classe Sujeira Caindo .................................................................... p. 13
4.9 - Classe Tiro .................................................................................... p. 13
4.10 - Classe TiroEmAcao ..................................................................... p. 14
5 - Relatório com as Linhas de Código .................................................... p. 14
6 - Apresentação do Programa em Funcionamento ................................ p. 20
7 – Bibliografia ............................................................................................ p. 20
1. Objetivo e Motivação do Trabalho
O objetivo é proporcionar a educação ambiental e saúde das praias brasileiras através do jogo de computador. 
O jogo por si só é um atrativo que tem o poder de reunir homens e mulheres de todas as idades. Reunindo a diversão que o jogo oferece, com a informação ecológica contida no jogo e a aplicação que gira entorno da destruição da sujeira, podemos concluir que o trabalho realizado é uma boa fonte para formação de ideias como a não poluição e o cuidado com o meio ambiente.
A realização de projetos como este é muito eficaz e benéfico a sociedade, pois não tem como o objetivo principal o entretenimento e sim passar uma mensagem positiva que pode e irá influenciar seus usuários.
Sabemos que jogos como este podem ser usados principalmente com crianças para ensinar pequenos hábitos como não poluir os rios e mares, não jogar lixo no chão é uma grande motivação para conclusão do projeto. 
2. Introdução
O Brasil possui um litoral com 7.367 km, banhado a leste pelo oceano Atlântico. O contorno da costa brasileira aumenta para 9.200 km se forem consideradas as saliências e reentrâncias do litoral. 
A Poluição da praia origina-se de uma variedade de fontes, incluindo os resíduos humanos, animais, agrícolas e industriais, bem como resíduos de óleo do motor e da gasolina, entre outros contaminantes expelidos para as regiões costeiras. Nadar em praia onde há água contaminada pode expor as pessoas a substâncias químicas nocivas como bactérias e vírus.
O litoral tem uma grande importância para o país e para seus cidadãos. Sua beleza chama a atenção de muitas pessoas do mundo inteiro que vêm para fazer turismo. E o turismo por sua vez aquece a economia e gera empregos. Além de ser uma forma de diversão e tranquilidade para os moradores locais e as pessoas das cidades afastadas da região.
	Os mares e rios brasileiros fornecem moradia a um grande leque de animais e plantas que devem ser respeitados e protegidos para que as futuras gerações possam ter a chance de ver, aprender e se envolver com a luta ecológica.	
	A vida marinha afeta diretamente o homem. Se não observamos suas necessidades e não conscientizarmos as pessoas, empresas e o próprio governo sobre a não poluição desses ambientes teremos que pagar um preço muito alto no futuro. 
	As pequenas coisas como latas, papeis e garrafas plásticas que muitas vezes vão para o mar quando as pessoas estão na praia se tornam objetos que poluem e matam peixes, tartarugas, plantas aquáticas e etc.
	Se já é desanimador saber que muito da sujeira que geramos acaba sendo jogada no mar, descobrir que a sujeira de outros países também vem parar em nossas praias é devastador. A sujeira jogada no mar de outros países acaba vindo para o Brasil através das marés. 
Segue a baixo uma lista com os países que poluem o litoral Brasileiro:
ESTADOS UNIDOS
· Quantidade – 241 embalagens
· Itens estranhos – Supositório, gel para cabelo e chantilly
ITÁLIA
· Quantidade – 151 embalagens
· Itens estranhos – Talco mentolado
ÁFRICA DO SUL
· Quantidade – 126 embalagens
· Itens estranhos – Limpa-vidros e milk shake em pó
TAIWAN
· Quantidade – 86 embalagens
· Itens estranhos – Feijão enlatado e silicone
REINO UNIDO
· Quantidade – 91 embalagens
· Itens estranhos – Limpa-forno e extrato de tomate
ARGENTINA
· Quantidade – 119 embalagens
· Itens estranhos – Espuma de barbear
ALEMANHA
· Quantidade – 110 embalagens
· Itens estranhos – Cola em bastão, pincel atômico e chantilly
Por causa de tudo isso e muito mais, o litoral brasileiro deve ser preservado. 
3. Regras do Jogo (Conceitos Gerais)
Desenvolvemos um jogo pensando em levantar a questão ambiental que tem afetado diretamente as férias, finais de semana e feriados de muitos brasileiros. Que é a poluição nas praias. 
Como o público alvo são as crianças escolhemos um personagem familiar e querido por eles para destruir o “Sr. Sujeira” (personagem verde com cara de mau que simbolicamente ilustra a poluição). O personagem dos livros e filmes infantis... Harry Potter.
A fase se passa em uma praia. A visão do jogador é ver o Harry Potter virado de costas próximo ao canto inferior da tela enquanto muitos do “Sr. Sujeira” vem invadindo do canto superior. O objetivo é destruir a sujeira o mais rápido possível para não deixar que ele invada a praia ou encoste no Harry.
Para destruir toda a sujeira Harry Potter conta com seu poder de atirar raios que ao se chocarem com o “Sr. Sujeira” o destroem. 
O Jogo conta com uma página inicial de abertura que acompanha uma música agitada de fundo. A música continua durante toda a execução do programa já que tem como objetivo animar e trazer maior descontração ao jogador. 
Esta tela inicial contém uma imagem que já aborda o tema de um mundo com mais verde e passa a ideia de que essa responsabilidade está em nossas mãos. Nela também o nome dos participantes do grupo. 
A tela fica por 8 segundos até que automaticamente vai para a segunda janela que é o menu inicial. 
A segunda janela se trata do Menu Inicial. Nela temos uma mensagem de saudação e a instrução de como jogar e marcar pontos.
Dois botões estão disponíveis para uso. O primeiro (Play) que leva ao jogo e o segundo (Exit) que fecha a aplicação. A tela apresenta uma imagem de um pedaço de uma praia poluída com uma lata. 
A terceira tela da aplicação foi feita com o intuito de futuramente ao criar novas fases e desafios para o jogo. No canto superior da tela ao completar um desafio um outro novo possa estar disponível.
Para iniciar o jogo o usuário deve clicar no Harry Potter, caso queira retornar ao menu inicial a página também oferece um botão voltar. 
Depois de clicar no personagem o jogo definitivamente é iniciado. O jogo conta com contador que serve como placar de pontuação, é acrescido um cada vez que o raio destrói uma sujeira. 
Os raios são ilimitados permitindo que o jogador não precise se preocupar com os erros e em apenas em acertar a sujeira. 
O personagem além de atirar tem uma movimentação para os lados tanto paraa esquerda como direita. Foi colocado na programação um algoritmo para que ele não consiga ir além da largura da tela. 
4. Projeto e Estrutura do Programa
O jogo foi desenvolvido no Eclipse utilizando 10 classes Java. Cada classe aborda um aspecto ou característica do jogo.
Temos também duas pastas. A primeira contém todas as imagens utilizadas na interface gráfica. A todas as imagens foram pegas na internet e tratadas através do Photoshop, muitas das imagens eram parte de uma figura maior com fundo e outros personagens, estas foram recortadas e redimensionadas de forma que não ficasse nenhuma imperfeição no jogo. 
4.1 Classe Atirador
Contém um construtor para gerar o personagem Harry Potter, um método para que o mesmo seja desenhado na tela e métodos das coordenadas X e Y para fazê-lo se locomover.
4.2 Classe JaneladeAbertura
É responsável por criar a primeira tela do jogo. Basicamente é uma JFrame com um Tread.sleep para fazer com que a tela seja fechada automaticamente. Temos também o arquivo de áudio sendo iniciado dentro de um Try e Catch para evitar que a aplicação pare de rodar caso haja algum problema com o arquivo de áudio. 
4.3 Classe Level
Se trata da tela anterior ao jogo definitivo. Nela temos outro JFrame e são implementados os ActionListener, KeyListener para a interação do usuário. 
4.4 Classe Level1
É a maior classe de todo o programa. Ela pega os atributos e informações desenvolvidas em outras classes e junta tudo para fazer com que o jogo realize as funções que foram planejadas inicialmente.
4.5 Classe Menu
JFrame que implementa ActionListener, KeyListener. Nela temos os atributos JButton e JLabel.
4.6 Classe ProgramaPrincipal
Classe muito simples. É responsável apenas em iniciar a aplicação, por isso ela é a “main” classe.
4.7 Classe Sujeira
Classe extremamente similar a classe Atirador.
4.8 Classe Sujeira Caindo 
A Classe conte dois vetores que indicará a posição da sujeira e um Thread.sleep que marca o passo da sujeira se aproximando do personagem. 
4.9 Classe Tiro
Classe responsável por fornecer métodos para criação do raio e sua locação na tela.
4.10 Classe TiroEmAcao
Classe responsável pelo Thread.sleep que faz o raio caminhar em direção a sujeira e o método colisão.
5. Relatório com as Linhas de Código
Os códigos de todas as classes foram enviados ao professor para uma melhor verificação dos métodos utilizados. Aqui tentaremos dar uma ampla visão e focar dos principais pontos da programação Java utilizada no trabalho. 
A classe Level1 contém a maior dificuldade e a estruturação do jogo, as outras classes servem mais de base para ela. Então vamos priorizar a classe Level1 nesta parte do trabalho.
Classe Level1
A classe implementa o KeyListener para poder ler os comandos do teclado. Ela conta com os seguintes atributos e objetos:
· Objeto janela do tipo JFrame: Para criar a tela.
· Objeto atirador do tipo Atirador: Está Classe foi criada e em seu construtor recebe três parâmetros. O primeiro é a coordenada X, que posiciona o Harry Potter na tela referente ao eixo X. O segundo é a coordenada Y, que posiciona o Harry Potter na tela referente ao eixo Y. O terceiro é a String que busca a imagem do Harry Potter se encontra. 
· Objeto sujeira do tipo Sujeira: São dois vetores posicionando as imagens que se repetem uma ao lado da outra. Acontece que as imagens ultrapassam as bordas da tela porém o usuário não percebe isso.
· Foi colocado também uma variável booleana perdeu que é iniciada com o valor “false”, para que o jogo possa reconhecer o momento que houve o “Game Over”.
 
O Construtor cria e da os parâmetros de tamanho da tela assim como cria dois “for” para que a sujeira e o raio (tiro) fossem instalados na tela. Os valore a baixo para as coordenadas X e Y foram encontrados através de tentativa e erro. 
Método paint importa o “java.awt.Graphics” que o possibilita a trazer a imagem de fundo. Além disso esse método tem um papel muito importante que é apagar e redesenhar tanto o raio como a sujeira diversas vezes, dando a impressão que eles estão se movimentando. Além de colocar na tela o placar e indicar se o jogador teve uma vitória ou perda. 
O método perdeu é bem simples. Basicamente ele pega as coordenadas da sujeira para ver se ela não avança até certo ponto de pixels da tela. Caso esse ponto é alcançado aparece uma mensagem dizendo a praia foi invadida e o jogado perdeu. 
O método ganhou foca em observar o placar. Se a pontuação chegar a 40, que é o número de sujeiras espalhadas pela praia, aparece uma mensagem de felicitação ao jogador pois ele eliminou e conseguiu limpar praia. 
O keyPressed é o responsável por ler os comandos do teclado das teclas de esquerda e direita para movimentar o personagem. Ele também observa quando a barra de espaço é pressionada para que o raio seja liberado. 
Os valores são os pixels dos passos dados para a esquerda e direita do personagem e a velocidade do raio ao tentar atingir a sujeira.
Classe TiroEmAcao
O raio é originado fora da tela atrás do personagem. Quando a barra de espaço é pressionada o raio vem de fora da tela e passa por de baixo do Harry Potter, quando a imagem do Harry Potter acaba o raio aparece e dá a impressão que foi gerada do personagem. 
O Método colisão é responsável por destruir a sujeira. Ele faz isso através do Rectangle. O Rectangle cria um retângulo incolor que acompanha o raio até encontrar uma intersecção com a sujeira. Ao encontrar a sujeira ele empurra a sujeira para muito longe da tela e fora da área demarcada da janela, dando assim a impressão que a sujeira foi destruída. 
Ao fazer isso a pontuação é acrescida com mais um.
Classe JaneladeAbertura 
A maneira que encontrei para fazer com que uma tela viesse depois da outra foi instanciar a nova janela dentro da execução de um try e catch ou fazer a ponte através de botões. Segue a baixo o exemplo de como o programa sai da tela de abertura e vai para o Menu. Depois dos 7 segundos a janela de abertura se fecha (janela.dispose()) e a instanciação do Menu ocorre. 
Classe ProgramaPrincipal
O programa principal é responsável por apenas iniciar a aplicação do início. Durante a construção do projeto ele foi muito utilizado para testar as classes que estavam em construção. Ao invés de iniciar a aplicação do inicio eu rodava apenas a classe que estava trabalhando. 
6. Apresentação do Programa em Funcionamento
A apresentação foi realizada no dia 13/11/2018.
7. Bibliografia 
http://meioambiente.culturamix.com/poluicao/poluicao-das-praias
https://educacao.uol.com.br/disciplinas/geografia/litoral-brasileiro-costa-tem-grande-importancia-e-deve-ser-preservada.htm
https://super.abril.com.br/mundo-estranho/qual-a-origem-do-lixo-que-chega-a-costa-brasileira/
http://zetcode.com/tutorials/javagamestutorial/pacman/
http://docente.lages.ifsc.edu.br/vilson.junior/MaterialDidatico/pi/2015_01/05_Construindo_Bomberman.pdf
https://www.youtube.com/watch?v=XmRD0PlAXEY

Mais conteúdos dessa disciplina