Buscar

APS 3 SEMESTRE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE PAULISTA DE SOROCABA
“DESINVOLVIMENTO DE UM JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA”
Sorocaba 2023
Caroline Pinto de Oliveira, RA: G5318A2 
Fatima Beatriz Cardoso, RA: F13FAF-0 
Leandro Aparecido da Silva, RA: G453AC7
Rodrigo Paes Santiago, RA: G5730E-1
DESINVOLVIMENTO DE UM JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA
Trabalho apresentado ao curso Ciência da Computação da instituição UNIP
Orientador: Reverdan Sparinger
Sorocaba 2023
Sumário
1.	OBJETIVO DO TRABALHO	4
2.	INTRODUÇÃO	5
3.	RESULTADOS	22
6.	CONSIDERAÇÕES FINAIS	26
7.	REFERÊNCIAS	27
8.	CÓDIGO FONTE	31
1. OBJETIVO DO TRABALHO
O trabalho se refere a implementação de um jogo em Java. O objetivo do jogo é pular obstáculo em um ambiente urbano e evitar o lixo que está no caminho.
A técnica utilizada é de programação orientada a objeto, como herança e polimorfismo, para representar os objetos do jogo e suas interações. Além disso, o jogo pode usar algoritmos de colisão para detetar quando o personagem principal colide com obstáculos ou objetos no ambiente.
A escolha da linguagem Java para o desenvolvimento do jogo pode ser devido às suas características de ser uma linguagem orientada a objetos e portátil, o que significa que o código pode ser executado em diferentes sistemas operacionais sem a necessidade de modificá-lo.
Em resumo, o trabalho envolve a implementação de um jogo em Java chamado "Pule o Lixo", que envolve pular obstáculo em um ambiente urbano e evitar o lixo no caminho, utilizando técnicas de programação orientada a objetos e algoritmos de colisão para detecção de colisões.
2
2. INTRODUÇÃO
O jogo "Pule o Lixo" pode ser utilizado como uma ferramenta de aprendizagem e educação em várias áreas, incluindo educação ambiental, desenvolvimento motor, coordenação e raciocínio rápido. Aqui estão algumas maneiras pelas quais o jogo pode ser utilizado para fins educacionais:
Educação ambiental: O jogo pode ajudar a conscientizar os jogadores sobre a importância da redução do lixo e sua correta disposição.
Desenvolvimento motor: O jogo requer que o jogador salte obstáculo e evite o lixo, o que pode ajudar a melhorar a coordenação e o desenvolvimento motor.
Coordenação: O jogo exige que o jogador reaja rapidamente ao obstáculo no caminho, o que pode ajudar a melhorar a coordenação motora fina.
Raciocínio rápido: O jogo exige que o jogador tome decisões rápidas e execute ações de forma rápida e eficiente, o que pode ajudar a melhorar o raciocínio rápido e a tomada de decisões.
Além disso, o jogo pode ser utilizado como uma ferramenta educacional em sala de aula ou em casa, por meio da discussão dos temas abordados no jogo, como o impacto ambiental do lixo, o que é reciclável e como separar os resíduos. Isso pode ser feito antes ou após o jogo para ajudar a reforçar os conceitos abordados. Em resumo, o jogo "Pule o Lixo" pode ser utilizado como uma ferramenta educacional em várias áreas, incluindo educação ambiental, desenvolvimento motor, coordenação e raciocínio rápido, e pode ser incorporado em sala de aula ou em casa, por meio de discussões dos temas abordados no jogo.
	INTRODUÇÃO DE FUNCIONAMENTO
Seja bem-vindo ao jogo “Pule o lixo”! Um jogo divertido e ao mesmo tempo desafiador, onde testará suas habilidades de salto para se esquivar do obstáculo. Você irá controlar um personagem correndo em um cenário urbano cheio de lixo, seu objetivo é pular sobre este obstáculo para continuar avançando e ganhando pontuações, o jogo conta somente com um nível.
Mas cuidado! Se esbarrar no obstáculo você tem somente 3 vidas, se caso se esgotarem irá perder o jogo, e o mesmo deverá ser reiniciado . Conforme o avanço, o jogo ficará difícil com o obstáculo aparecendo mais rapidamente e em padrões complexos.
Você tem o que é preciso para chegar até o fim deste desafio e se tornar o mestre de “Pule o lixo? Então, prepare-se para correr, pular e esquivar neste jogo emocionante.
REFERENCIAL TEÓRICO
Resumindo, chamamos de "interface" qualquer sistema que permita que uma máquina interaja com um usuário. Toda a comunicação do computador ocorre em código binário, que não é facilmente compreendido pelos humanos. Assim, foi criada uma interface para adaptar este código a uma linguagem mais amigável. As interfaces gráficas, por sua vez, são aquelas que utilizam símbolos e linguagem visual para estabelecer essa comunicação. Por exemplo, quando você toca em um ícone em seu telefone ou clica em um link em um site, está usando a interface gráfica desse sistema para acessar as informações de que precisa dentro da máquina. (VENTAVOLI,2015)
Ainda segundo Ventavoli(2015),a qualidade da interface do usuário tem um grande impacto na sua experiência. Você pode se esforçar para usar um aplicativo sem um design amigável. Se você deseja desenvolver um software com uma melhor experiência do usuário, siga estes princípios:
Adaptabilidade
Quando um usuário comete um erro ao interagir com seu software, é importante que ele tenha feedback sobre o que fez de errado e até corrija automaticamente seu erro. Suponha que um usuário use uma ferramenta e pesquise para encontrar uma função ou arquivo dentro do sistema, mas altere o número na barra de pesquisa ou use um termo diferente. Se um aplicativo não for adaptativo, ele não responderá a mensagens incorretas. Uma solução é adicionar um corretor que forneça uma resposta aproximada ou torne vários termos relevantes para o mesmo objeto de pesquisa. Dessa forma, o usuário pode encontrar o que precisa com mais rapidez.
Atração
Mesmo que o visual não seja uma prioridade para um aplicativo, uma boa GUI precisa ser pelo menos atraente aos olhos. Isso inclui o uso de
cores e formas que não cansam os olhos, imagens de qualidade suficiente, forte identidade visual, etc. Além de ajudar na impressão que seu software causa, também é uma forma de torná-lo mais reconhecível para o público quando ele o vir.
Clareza
A prioridade número um para qualquer aplicativo que está sendo desenvolvido hoje é seu uso e clareza das informações. Quando um usuário clica em um ícone ou insere um comando, o ideal é que ele saiba exatamente que tipo de resposta obterá. Uma boa interface também permite que esse entendimento aconteça em menos tempo.
Compreensão
Com a tecnologia digital amplamente difundida de hoje, é comum encontrar usuários que podem se adaptar rapidamente a todos os tipos de software. No entanto, ainda existem muitas pessoas que têm dificuldade em entender todas as informações da tela. Quando eles cometem um erro, pode ser difícil descobrir o que eles precisam mudar. Uma boa GUI também deve incluir algum feedback para determinadas ações, especialmente quando o usuário comete um erro. Além disso, deve haver alguma orientação sobre as ações corretas a serem tomadas após tais erros.
Consistência
À medida que os usuários se familiarizam com seu software, eles também começam a entender a linguagem visual da interface. É por isso que é importante falar a mesma linguagem em todos os aspetos do design. Digamos que você use o sinal "+" em quase todos os aspetos do seu software para adicionar objetos às listas. No entanto, no contexto, "+" move para a próxima página de conteúdo. Essa inconsistência no seu idioma pode causar confusão e prejudicar a experiência do usuário.
Eficiência
Uma boa interface deve ser prática e direta, transmitindo tudo o que o usuário precisa saber com o mínimo de esforço. Muita informação só vai desorientar seus usuários.
Familiaridade
Quando falamos de uma interface intuitiva, queremos dizer realmente um modelo que segue certas convenções de design. Ou seja, seu software tem alguma funcionalidade comum que todo usuário espera que apareça da mesma maneira. Por exemplo, ao visitar um site, você deseja clicar no logotipo para voltar à página inicial. Caso isso não aconteça, você terá que encontrar uma rota alternativa, que pode demorar mais.
Objetividade
Na maioria dos casos, a orientação direta é mais útil do que informações exaustivas e detalhadas.Concentre-se em fornecer aos usuários tudo o que eles mais precisam saber, em vez de sobrecarrega-los.
Podemos notar essa diferença ao longo do tempo, a tecnologia mudou radicalmente no início dos anos 80 com a entrada da IBM no mercado de computadores pessoais. Os PCs IBM ainda dominavam o mercado, mas mudaram. Em 1985, a Intel lançou o processador i386, que a Compaq usou em seu DeskPro 386 - um clone de PC melhor do que a máquina IBM. Como resultado, a IBM perdeu o controle do mercado para empresas que criam clones de PC. Na segunda metade da década de 80, muitas inovações tecnológicas revitalizaram a indústria em preparação para a explosão criativa dos anos 90 (PEPE, 2017)
A década de 90 foi a época que foram marcados por muita inovação. Jogos de vários gêneros foram criados que por sua vez marcou essa geração. Dune II definiu o padrão para jogos RTS, Wolfenstein 3D e Doom introduziram o FPS (ou "clones Doom", como ficaram conhecidos), Civilization popularizou jogos 4x, Alone in the Dark criou survival horror, Street Fighter II, Mortal Kombat e The King of lutadores dominam o fliperama, Super Mario World, Donkey Kong Kingdom, Sonic,
Mega Man X, Castlevania: Rondo of Blood e Super Metroid são lendas de plataformas; em JRPG temos Earthbound, Final Fantasy VI, Breath of Fire, Secret of Mana ; de aventura temos dezenas de clássicos da LucasArts e Sierra, Ultima Underworld mostrou ao mundo como fazer um jogo 3D; a lista continua Continuando: Need for Speed, Warcraft, Simcity 2000, Mario Kart, X-COM, Lemmings, F -Zero, comandante de ala, Star Fox. À medida que mais e mais pessoas usam computadores e modems, os jogos "shareware" se espalham - Epic Pinball, Duke Nukem e Doom, entre outras ferramentas de software, podem ser jogados (PEPE, 2017).
Os anos 2000 foram marcados pelo controle de grandes empresas como EA, Activision e Ubisoft, além de três fabricantes de consoles - Nintendo, Sony e Microsoft. Com isso, os melhores jogos rapidamente se tornaram “franquias” que passaram a ser lançadas anualmente, sendo Assassin's Creed e Call of Duty algumas delas (PEPE, 2017).
Jogos eletrônicos, jogos virtuais ou geralmente chamados de jogos de vídeo provaram ser uma atividade extremamente comum na sociedade atual. Muitos jovens e adultos usam videogames como forma de entretenimento em diversos lugares. Além disso, com o tempo, essas práticas virtuais ganharam protagonismo, dando origem aos e-sports, termo utilizado para diferenciar jogos digitais casuais de jogos mais competitivos. E-Sports é uma modalidade de competição baseada principalmente em competições esportivas eletrônicas disputadas em modernas arenas e estádios denominados “arenas”, que atraem o público com suas estruturas relacionadas aos esportes tradicionais. (Anastácio, & Savonitti, G. 2021)
Segundo os autores, os jogos digitais possuem a capacidade técnica de proporcionar experiências multissensoriais por meio desses mundos virtuais imaginários e imaginativos, sendo esta a principal característica que distingue os jogos não digitais. Quando trazido para o nosso mundo "real", este mundo imaginado é limitado apenas pela criatividade dos participantes. Outra característica que diferencia essas práticas é a rigidez das regras dos jogos digitais em relação à possibilidade de alterá-las quando praticadas no mundo real, se necessário, o que explica o desenvolvimento cognitivo positivo que os
videogames trazem a esses indivíduos. praticá-los. Não só tem um efeito positivo na aprendizagem, mas também nas habilidades motoras, como orientação espacial, coordenação motora, perceção visual, forma, raciocínio, etc. (Silva, 2016)
A indústria de videogames é um setor econômico em rápido crescimento, maior do que a indústria cinematográfica e um dos maiores provedores de lazer da sociedade. O mercado de videogames tem mais de 2 bilhões de jogadores e gera aproximadamente US$ 152 bilhões em receita anual. O Brasil é o quarto maior mercado de videogames, com 77 milhões de jogadores e receita anual de aproximadamente US$ 1,5 bilhão. Esse valor representa um crescimento de 25% em dois anos, tornando o mercado brasileiro de videogames o 13º mercado mais lucrativo do mundo (Newzoo, 2019). Portanto, este é um mercado importante que merece um melhor entendimento para aumentar sua lucratividade.
Não apenas no Brasil, o mercado de videogames deve se expandir; as previsões estimam que o lucro global desse mercado chegará a cerca de US$ 165 bilhões até 2020 (Newzoo, 2019). Esse crescimento está acontecendo porque existem muitas maneiras de jogar jogos disponíveis agora. Hoje, ainda existem jogos tradicionais de console ou PC, mas também podem ser jogados em qualquer lugar usando um smartphone, que é o mercado mais proeminente e o mais difícil de alcançar. Além disso, este crescimento não se limita a diferentes plataformas de jogo, mas inclui também a existência de diversas finalidades de jogo. Existem muitos tipos de videogames com diferentes focos - como entretenimento, jogos casuais, jogos sérios, jogos médicos e até e-sports, onde os usuários são verdadeiros jogadores profissionais (pro players). Assim, este mercado oferece muitas oportunidades para explorar.
Devido aos desenvolvimentos tecnológicos, a interação entre humanos e computadores aumenta a cada década. Essa relação torna o comportamento humano mais dependente de novas ferramentas, mas por outro lado, os autores Barbosa et al. (2021) observaram que a produtividade aumentou significativamente nos últimos anos devido à automação e agilidade das máquinas.
As pesquisas realizadas na área de Interação Humano-Computador (IHC) se aplicam a múltiplos sistemas, principalmente no contexto da engenharia de software, que foca na qualidade de uso de sistemas interativos e busca colaborar com softwares “outsiders”. "para dentro", ou seja, apontar primeiro para o usuário e depois para o código. Esse raciocínio reforça a importância dos profissionais de tecnologia da informação (TI) estudarem o que está envolvido em IHC. Nesse caso, Nelson é o autor, a construção da interface tem alguns dos princípios e diretrizes mais unificados conhecidos como heurísticas de Nelson (BARBOSA et al., 2021).
Os jogos podem estimular o sistema nervoso, resolver problemas e alcançar conquistas, aumentando assim o bem-estar do usuário (TOLOMEI, 2017). Diante desse cenário, este trabalho foi produzido para demonstrar o processo de desenvolvimento de um jogo para navegador web baseado nas heurísticas de Nelson para auxiliar no ensino de estudantes de engenharia de software. Desenvolver jogos que potencializem o processo de ensino na área de IHC auxilia no ensino presencial e a distância (EAD), além de validar o aprendizado do aluno. A próxima seção descreve a justificativa para este trabalho.
Embora a experiência de brincar esteja repetidamente ligada à infância, sabe- se que as atividades lúdicas trazem benefícios para o desenvolvimento físico, independentemente da idade do indivíduo. Por exemplo, pode-se citar a homeostase corporal, a integração social e a autoanálise e exploração (Amorim & Soares, 2020).
Embora possam ser esperadas diferenças nos tipos de atividades que diferentes faixas etárias devem praticar, um abandono acentuado de jogos de rua e brinquedos "clássicos" em favor de videogames e videogames (Petri, 2020).
Facini (2022) reitera que a invenção da Internet se consolidou como um fenômeno revolucionário da comunicação humana, de modo que os procedimentos e mecanismos de transmissão de informações conseguiram superar as barreiras naturais com relativa facilidade. No Brasil, porém, são evidentes níveis desiguais de acesso a essas tecnologias.
O IBGE (2021) apontou que, em 2019, 4,7% dos domicílios (3,4 milhões) do país não possuíam telefone celular, e 17,3% (cerca de 12,61 milhões) dos domicílios não possuíam acesso à Internet. Infelizmente, o IBGE não leva em
consideração os hardwares (aparelhos eletrônicos) que são usados diretamente em videogames.
Sobre o tema da socialização e descoberta de novos tipos de jogos, Barr e CopelandStewart (2021) chegaram a conclusões muito semelhantes a Zhu (2020) por meio de autorrelato, principalmente no que diz respeito ao escapismo. No entanto, a partir da leitura das respostas fornecidas pelos participantes do estudo, pode-se deduzir que o processo catártico de escapismo não se limita a um determinado jogo e/ou gênero, mas se vale de um conjunto infinito de possibilidades. Outros efeitos relatados pelos participantes durante o jogo incluíram alívio do estresse, estimulação cognitiva, sentimentos de 'normalização', socialização e senso de controle (eficácia, competência e autonomia).
Além disso, Pierce et al. (2021) afirmam que os videogames são um importante\recurso para ajudar a aliviar o estresse nas famílias. O tempo gasto em jogos e atividades de lazer oferece aos familiares a possibilidade de construir resiliência em períodos de intensa carga emocional e vínculo social/emocional. Pela importância do tema, antecipa-se que o impacto dos videogames em um ambiente científico seja contextualizado neste trabalho.
JavaScript (frequentemente abreviado para JS) é uma linguagem de programação interpretada estruturada, de alto nível, tipada dinamicamente, multiparadigma (prototípica, orientada a objetos, imperativa e funcional). Junto com HTML e CSS, JavaScript é uma das três principais tecnologias na World Wide Web. O JavaScript permite páginas da web interativas e, portanto, é uma parte importante dos aplicativos da web. A grande maioria dos sites o utiliza e todos os principais navegadores possuem mecanismos JavaScript dedicados para executá-lo. Atualmente, é a linguagem dominante para programação do lado do cliente em navegadores da web. Ele também é usado extensivamente no lado do servidor por meio de ambientes como node.js.(SILVA,2017)
Como uma linguagem multiparadigma, o JavaScript suporta estilos de programação orientados a eventos, funcionais e imperativos (tanto orientados a objetos quanto baseados em protótipos), com recursos como encerramentos e funções de ordem superior que não são normalmente encontradas em linguagens populares como Java e C++. .tem APIs para manipulação de texto, arrays, datas, expressões regulares e DOM, mas a linguagem em si não inclui nenhuma E/S, como rede, armazenamento ou instalações gráficas, dependendo do ambiente de host em que está embarcado, ele foi originalmente implementado como parte de um navegador da Web para que os scripts pudessem ser executados no lado do cliente e interagir com o usuário sem que esse script passasse pelo servidor, controlando o navegador, realizando comunicações assíncronas e alterando o conteúdo exibido dos documentos, mas o mecanismo O JavaScript agora está incorporado em muitos outros tipos de software host, incluindo servidores e bancos de dados da Web, programas não relacionados à Web, como processadores de texto e PDFs, e ambientes de tempo de execução que permitem que o JavaScript seja usado para escrever aplicativos móveis. e desktop, incluindo widgets de desktop.(SILVA,2017) 
Os termos vanilla JavaScript e vanilla JS referem-se a JavaScript que não é estendido por nenhuma outra estrutura ou biblioteca. Scripts escritos em Vanilla JS são puro código JavaScript. Enquanto JavaScript e Java compartilham semelhanças, incluindo nomes de linguagem, sintaxe e suas respectivas bibliotecas padrão, as duas linguagens são distintas e diferem muito em design; JavaScript é influenciado por linguagens de programação como Self e Scheme, e é baseado em ECMAScript , Padronizado pela Ecma International nas especificações ECMA-262 e ISO/IEC 16262.(ECMA,2011)
Conforme avalia Christopoulou (2017), atualmente existem diversas opções de game engines disponíveis, sendo que as duas que dominam o mercado de jogos comerciais são a Unreal e a Unity Engine. Criada pela Epic Games em 1998, a Unreal Engine é uma engine comercial utilizada principalmente por grandes corporações focadas na criação de jogos AAA, ou seja, jogos de grande orçamento desenvolvidos por times maiores. Para os projetos abrangidos por este trabalho, seu uso foi abandonado devido a sua complexidade. O Unity é um mecanismo gratuito mais recente que foi originalmente criado para facilitar o uso por desenvolvedores independentes e pequenas equipes e, embora atualmente tenha muitos recursos mais avançados, ele permite apenas a programação na linguagem de programação C#.
A terceira opção de motor de jogo avaliada foi o Godot, que também é um dos motores mais utilizados atualmente, o motor de código aberto mais popular nos últimos anos e o de maior persistência (BEECHING et al., 2021). Godot suporta exportação de jogos para sistemas Linux, Windows, MacOS, além de sistemas operacionais móveis (iOS e Android), HTML e Web Assembly. Além disso, Godot pode ser programado em diferentes linguagens como Python, C#, C++ e sua própria linguagem GDScript. Segundo Beeching, a engine tem todas as características de uma game engine moderna, como as citadas anteriormente, além de um editor intuitivo e fácil de usar para equipes pequenas, com gerenciamento de ativos, animações, menus, plugins e renderização de alta qualidade. Por estes motivos, optamos por utilizar a Godot para desenvolver este projeto.
O jogo "Pule o Lixo" é uma evolução dos jogos de plataforma que tem como
objetivo principal pular obstáculo em um ambiente urbano e evitar o lixo que está no caminho. Essa versão eletrônica do jogo surgiu no início dos anos 2000, quando o conceito de jogos educacionais começou a se popularizar (MAGALHÃES, 2018).
A ideia era criar jogos que ensinassem conceitos importantes de forma lúdica e interativa, e foi nesse contexto que surgiram diversos jogos educacionais relacionados à preservação ambiental, como o "Pule o Lixo". A primeira versão eletrônica do jogo foi criada utilizando a linguagem Java, que permitia a criação de jogos em 2D de forma relativamente simples e com boa performance (PAES et al., 2021).
Com o passar dos anos, o jogo foi evoluindo e ganhando novas funcionalidades, como novos obstáculos, novas fases e novas mecânicas de jogabilidade. O jogo em Java pode ser executado em diversas plataformas, como computadores, tablets e smartphones, o que aumentou a sua acessibilidade e popularidade (MOURA et al., 2018).
A importância do jogo "Pule o Lixo" em Java para a educação ambiental é destacada por diversos autores. Segundo Pardo e Marôco (2021), jogos educacionais em geral podem contribuir para a formação de cidadãos mais conscientes e responsáveis com o meio ambiente. Além disso, jogos em Java podem ser uma ferramenta útil para a educação ambiental, já que são acessíveis e podem ser executados em diversas plataformas.
Outros autores, como Magalhães (2018), destacam a importância de jogos educacionais em Java para a educação ambiental, especialmente em relação ao aprendizado de conceitos complexos, como a preservação ambiental. Os autores ressaltam que jogos em Java podem tornar o aprendizado mais divertido e interativo, o que pode motivar as pessoas a se engajarem em práticas mais sustentáveis.
Em resumo, o jogo "Pule o Lixo" em Java é uma evolução da versão eletrônica jogo de plataforma que tem como objetivo principal pular obstáculos em um ambiente urbano e evitaro lixo que está no caminho. O jogo surgiu no contexto dos jogos educacionais voltados para a preservação ambiental, e ao longo dos anos, foi evoluindo e ganhando novas funcionalidades. O jogo em Java é uma ferramenta importante para a educação ambiental, permitindo que mais pessoas aprendam sobre a importância da preservação ambiental de forma lúdica e interativa.
DESINVOLVIMENTO
O desenvolvimento do programa do jogo "Pule o Lixo" pode ser dividido em várias etapas, cada uma com técnicas específicas envolvidas. Aqui estão algumas das principais etapas e técnicas envolvidas no processo de desenvolvimento do jogo:
Planejamento: Nesta fase, os requisitos do jogo são identificados, incluindo a mecânica do jogo, os recursos visuais e sonoros, as interfaces do usuário e as funcionalidades. É importante definir o escopo do projetoe criar um plano de desenvolvimento com marcos e prazos.
Design: Nesta etapa, é criado um esboço do jogo com base nos requisitos definidos na etapa de planejamento. Isso envolve a criação de uma estrutura básica do jogo, incluindo a lógica do jogo, as regras, os personagens e o cenário. É importante escolher uma arquitetura de software adequada e definir as classes, métodos e variáveis necessárias para implementar o jogo.
Implementação: Nesta etapa, o código do jogo é desenvolvido com base no design criado na etapa anterior. É importante seguir as melhores práticas de programação em Java, como a orientação a objetos, encapsulamento e modularização do código. Técnicas como herança, polimorfismo e interfaces podem ser usadas para implementar a lógica do jogo de forma eficiente.
Testes: Nesta etapa, o jogo é testado para garantir que ele funcione corretamente e atenda aos requisitos especificados. Isso envolve a realização de testes de unidade, testes de integração e testes de aceitação para verificar se o jogo funciona corretamente em diferentes cenários e dispositivos.
Manutenção: Nesta fase, o jogo é mantido e atualizado para corrigir quaisquer bugs ou problemas que possam surgir e adicionar novas funcionalidades. É importante usar ferramentas de gerenciamento de versão para rastrear as alterações feitas no código e garantir que o jogo funcione de forma consistente em diferentes plataformas.
Algumas das técnicas envolvidas na implementação do jogo "Pule o Lixo" em Java podem incluir o uso de estruturas de dados, como listas vinculadas, para armazenar o obstáculo e gerar padrões de movimento aleatórios. Também podem ser utilizadas técnicas de animação e interação de eventos para criar uma interface de usuário interativa e responsiva. O uso de bibliotecas de gráficos, como JavaFX, pode ser usado para criar um ambiente visualmente atraente para o jogo. Além disso, o desenvolvimento do jogo em Java pode permitir que ele seja executado em diferentes plataformas, como desktops, laptops e dispositivos móveis.
O jogo "Pule o Lixo" é um jogo de plataforma simples onde o jogador controla um personagem que corre em um cenário urbano cheio de lixo. O objetivo do jogo é pular sobre oobstáculo para avançar o máximo possível e ganhar pontuações.
As regras do jogo são simples:
	O jogador deve pular sobre o lixo para evitar colisões e continuar avançando.
	Se o jogador colidir com o lixo, ele perde uma vida. O jogo acaba quando o jogador perde todas as três vidas.
	Conforme o jogador avança, o jogo fica mais difícil, com o lixo aparecendo mais rapidamente e em padrões mais complexos.
A estratégia do jogo é simples: o jogador deve pular no momento certo para evitar os obstáculos e continuar avançando. O jogo requer que o jogador tenha habilidades motoras, de coordenação e raciocínio rápido para ter sucesso.
Além disso, o jogo também tem uma temática ambiental, onde o jogador é incentivado a evitar o lixo e a conscientizar-se sobre a importância da redução do lixo e sua correta disposição. A Figura 1 apresenta:
Figura 1: A figura apresenta um personagem correndo em direção ao obstáculo. .(autoria própria,2023)
Figura 2: Na figura o personagem pulou o obstáculo. .(autoria própria,2023)
Figura 3: Na figura o persoonagem esbarrou no obstáculo e perdeu uma vida. .(autoria própria,2023)
Figura 4: Na figura o personagem perdeu todas as suas vidas.(autoria própria,2023)
O código fornecido é a implementação de um jogo simples em Java usando a biblioteca Swing. O jogo consiste em um personagem (representado por uma imagem) que pode pular, e o jogador deve evitar obstáculos para ganhar pontos.
A Jogo classe estende a JPanel classe e define o loop principal do jogo. Ele também contém instâncias das classes Homem, Obstáculo e Fundo, que representam o personagem, os obstáculos e o histórico, respetivamente. A Jogo classe também define algumas variáveis estáticas para acompanhar o estado do jogo, como o número de vidas, pontos e o nível atual.
A Homem classe representa o personagem no jogo. Ele contém métodos para mover e pintar o personagem na tela. O keyPressedmétodo é chamado quando o jogador pressiona a tecla de espaço, que define a saltando variável (salto) como verdadeira.
A Obstaculo classe representa os obstáculos do jogo. Contém métodos para mover e pintar os obstáculos na tela. O colisão método verifica se o personagem colide com um obstáculo e, caso ocorra, o jogador perde uma vida.
A Fundo classe representa o plano de fundo do jogo. Ele contém métodos para mover e pintar o fundo da tela.
O empate método da Jogo classe é responsável por pintar todos os objetos do jogo na tela, como personagem, obstáculos e fundo. O empate Pontuação método é responsável por pintar a partitura, as lives e o nível na tela.
O loop do jogo funciona chamando o mover método nas classes Jogo, Homem, Obstáculo e Fundo repetidamente, o que atualiza a posição dos objetos na tela. O paintComponentmétodo na Jogo classe é chamado toda vez que a tela precisa ser repintada, o que acontece várias vezes por segundo, e pinta todos os objetos do jogo na tela.
Resumindo, este é um jogo simples em Java que usa a biblioteca Swing para criar uma interface gráfica com o usuário. O loop do jogo atualiza a posição dos objetos do jogo e repinta a tela várias vezes por segundo. O jogador deve evitar obstáculos para ganhar pontos e progredir nos níveis.
RESULTADOS
O jogo "Pule o Lixo" pode ser uma ferramenta interessante para auxiliar na educação ambiental e conscientização sobre a importância da reciclagem e da redução do lixo.
Como executar o jogo na educação ambiental:
Introdução ao jogo: Explique aos alunos o propósito do jogo e os objetivos educacionais que serão abordados. Certifique-se de que eles entendam a importância da reciclagem e como ela contribui para a preservação do meio ambiente.
Jogue em grupo: Divida os alunos em equipes e promova a competição saudável entre elas. Isso incentiva a colaboração e o trabalho em equipe.
Explique as regras: Antes de começar o jogo, forneça instruções claras sobre como jogar. Certifique-se de que todos os alunos estejam familiarizados com as regras e as mecânicas do jogo.
Discussão pós-jogo: Após o término do jogo, reúna os alunos para uma discussão sobre as principais lições aprendidas. Peça a eles que compartilhem suas experiências e insights sobre a importância da reciclagem e como podem aplicar esses conhecimentos em suas vidas diárias.
Atividades complementares: Além do jogo em si, desenvolva atividades complementares, como projetos de arte usando materiais reciclados, pesquisas sobre os impactos ambientais do lixo ou visitas a centros de reciclagem locais. Isso ajudará a reforçar os conceitos aprendidos no jogo e a aprofundar o conhecimento dos alunos sobre o assunto.
Lembrando que, mesmo que o jogo seja divertido e envolvente, é importante que os alunos entendam que a reciclagem e a redução do lixo são questões sérias e que requerem ações reais para fazer a diferença no mundo real. O jogo pode servir como uma introdução e uma forma de despertar o interesse dos alunos para o tema.
O jogo "Pule o Lixo" pode ser projetado de várias maneiras para ajudar na conscientização ambiental. Aqui estão alguns exemplos de como o jogo pode contribuir nesse sentido:
Conhecimento sobre tipos de lixo: O jogo pode apresentar diferentes tipos de lixo, como plástico, papel, vidro, e os jogadores podem aprender a identificar e separar corretamente esses materiais durante o jogo. Isso ajuda a promover a conscientização sobre a importância da reciclagem e da destinação adequada do lixo.
Pontuação baseada em ações sustentáveis: O jogo pode oferecer pontuações ou recompensas com base em ações sustentáveis dos jogadores, como coletar itens recicláveis, evitar obstáculos que representam poluição ambiental ou realizar tarefas que promovam a preservação do meio ambiente. Isso incentiva os jogadores a adotarem comportamentos mais conscientes e
ecológicos.
Desafios e missões ambientais: O jogo pode incluir desafiose missões que exigem que os jogadores enfrentem problemas ambientais e encontrem soluções sustentáveis. Isso ajuda a desenvolver o pensamento crítico e a promover a compreensão de como nossas ações afetam o meio ambiente.
Simulação de consequências ambientais: O jogo pode simular as consequências de decisões insustentáveis ou negligentes em relação ao meio ambiente. Por exemplo, se um jogador não coletar o lixo adequadamente, pode ver o ambiente do jogo se tornar mais poluído ou encontrar obstáculos mais difíceis de superar. Isso ajuda a transmitir a mensagem de que nossas ações têm impacto direto no ambiente ao nosso redor.
Informações educativas: O jogo pode fornecer informações educativas, como fatos sobre reciclagem, poluição e conservação de recursos naturais. Essas informações podem ser apresentadas durante o jogo, em pop-ups ou em seções dedicadas, para aumentar a conscientização e o conhecimento dos jogadores.
Lembrando de que a eficácia do jogo depende da forma como é projetado e da sua integração com discussões e atividades complementares. O jogo por si só não substitui uma educação abrangente sobre o assunto, mas pode ser uma ferramenta poderosa para complementar e reforçar a conscientização ambiental.
Definindo os objetivos: Antes de começarmos a desenvolver o jogo, definimos claramente quais são seus objetivos educacionais e o que esperamos que os jogadores aprendam com ele. Isso ajudou a orientar todo o processo de desenvolvimento e garantir que o jogo seja efetivo em transmitir a mensagem desejada.
Obtivemos o planejamento e a mecânica do jogo: Pensamos em como o jogo será jogado e quais mecânicas serão utilizadas para envolver os jogadores. Certificamos de que o jogo seja desafiador o suficiente para manter o interesse dos jogadores, mas também acessível o bastante para que possam aprender e se divertir.
Projetamos níveis e desafios: Criamos uma progressão gradual de dificuldade à medida que o jogador avança no jogo. Isso ajuda a manter o interesse e proporciona oportunidades de aprendizado contínuo.
Gráficos e interface amigáveis: Desenvolvemos uma interface de usuário intuitiva e amigável, com gráficos atrativos e de fácil compreensão. Isso ajudará o jogador a se envolver mais com o jogo e a entender melhor as informações e as mecânicas apresentadas.
Integração com atividades educacionais complementares: O jogo pode ser ainda mais eficaz quando complementado por atividades educacionais no ambiente escolar.
Para uma boa desenvoltura: Poderá ser desenvolvido planos de aula, atividades de discussão em grupo e projetos relacionados ao jogo para ajudar os alunos a aplicar o que aprenderam no contexto real.
Lembrando sempre de que o desenvolvimento de jogos é um processo iterativo, e é importante estar aberto a ajustes e melhorias ao longo do caminho. Com dedicação, pesquisa e refinamento contínuo, podemos criar um jogo educacional envolvente e eficaz para promover a conscientização ambiental.
CONSIDERAÇÕES FINAIS
"Pule o Lixo" é um jogo simples, mas que pode ser considerado útil em termos de conscientização ambiental. O objetivo é estimular o jogador a descartar o lixo em locais adequados, evitando que sejam jogados na rua ou em locais impróprios.
Além disso, o jogo apresenta elementos de herança e polimorfismo, que são conceitos importantes da programação orientada a objetos. A herança permite que as classes derivadas herdem as propriedades e métodos das classes base, enquanto o polimorfismo permite que objetos de diferentes classes sejam tratados de forma uniforme.
Portanto, o jogo pode ser considerado uma forma interessante de aprender conceitos de programação orientada a objetos de uma maneira divertida e interativa. Por fim, é importante ressaltar que, embora o jogo tenha um caráter educativo, é fundamental que sejam adotadas medidas concretas para a preservação do meio ambiente e a conscientização da sociedade
1. REFERÊNCIAS
BARBOSA, S. D. J. et al. Interação Humano-Computador e Experiência do Usuário. [S.l.]: Autopublicação, 2021. Citado 5 vezes nas páginas 17, 39, 51, 52 e 54.
BARR, M., & Copeland-Stewart, A. (2021). Playing Video Games During the COVID- 19 Pandemic and Effects on Players’ Well-Being. Games and Culture, 17(1), 122– 139. Recuperado de https://doi.org/10.1177/15554120211017036
BEECHING, Edward; DEBANGOYE, Jilles; SIMONIN, Oliver; WOLF, Christian. Godot Reinforcement Learning Agents. Cornell University Library, EUA, 2021.
CHRISTOPOULOU, Eleftheria; XINOGALOS, Stelios. Overview and Comparative Analysis of Game Engines for Desktop and Mobile Devices. International Journal of Serious Games, Macedonia, v. 4, n. 4, p. 21-36, 14 dez. 2017. Disponível em: https://journal.seriousgamessociety.org/index.php/IJSG/article/view/194. Acesso em: 15 ABRIL. 2023.
ECMAS cript Language Specification»(PDF). Consultado em 10 de fevereiro de 2011. Arquivado do original (PDF) em 12 de abril de 2023 https://www.ecma- international.org/publications-and-standards/standards/ecma-262/
FACINI, R. K. (2022). Do real ao virtual: a influência dos jogos eletrônicos para uma possível ressignificação dos espaços de lazer (Trabalho de Pós-Graduação).
Universidade de São Paulo, Escola de artes, ciências e humanidades, São Paulo, São Paulo, Brasil. Recuperado de https://www.teses.usp.br/teses/disponiveis/100/100140/tde-03022022- 193712/publico/ facini_karine_dissertacao_versao_corrigida_2022.pdf
IBGE. (2021, primavera). Acesso à Internet e à televisão e posse de telefone móvel celular para uso pessoal 2019 – PNAD contínua. Pesquisa Nacional por Amostra de Domicílios Contínua, 1-12. Consultado em Junho 20, 2022. Recuperado de
https://biblioteca.ibge.gov.br/visualizacao/livros/liv101794_informativo.pdf
MAGALHÃES, F. M. Desenvolvimento de Jogos Eletrônicos para Educação Ambiental. Tese de Doutorado. Universidade Federal do Rio de Janeiro, 2018.
MOURA, R. A. et al. Desenvolvimento de um Jogo Educativo em Java para Ensino deBiologia. Revista de Ensino de Ciências e Matemática, v. 9, n. 2, p. 99- 110, 2018.
NEWZOO. (2019). Últimas estimativas de mercado: Números-chave https://platform.newzoo.com/key-numbers/ Acessado em: 10/03/2023» https://platform.newzoo.com/key-numbers/
PAES, R. et al Ponciano, D., Klinger, E. F., Ponciano, J. V., Amorim, T R., Soares, D.
N. (2020). Playing and its importance in the child Pychoanalytic Therapeutic Process. International Neuropsychatric Disease Journal, 14(2), 12-16. Recuperado de: https://journalindj.com/index.php/INDJ/article/view/30124/56519
PETRI, I. S., & Rodrigues, R. F. L. (2020). Um olhar sobre a importância do brincar e a repercussão do uso da tecnologia nas relações e brincadeiras na infância..Research, Societ and Development, 9(9). Recuperado de http://dx.doi.org/10.33448/rsd-v9i9.7368G1.
SILVA, Daniela (2017). «A linguagem JavaScript». Um Estudo em Larga Escala sobre a Estrutura do Código-fonte de Pacotes JavaScript (PDF) (Tese de Bacharel). Universidade Federal do Estado do Rio de Janeiro (UNIRIO). Consultado em 22 de março de 2023
TOLOMEI, B. V. A gamificação como estratégia de engajamento e motivação na educação. EaD em Foco, v. 7, n. 2, set. 2017. Disponível em: . Citado na página 17
VENTAVOLI, fabiola. Programação JAVA: Orientação a Objetos e Interface Gráfica com conexão ao Banco de Dados MySQL. 2º edição. Rio de janeiro, 6 outubro 2015.
ZHU, L. (2020). The psychology behind video games during COVID-19 pandemic: A case study of Animal Crossing: New Horizons, 3(1), 157-159. Recuperado de: https://doi.org/10.1002/hbe2.221
CÓDIGO FONTE
Pacote o jogo
package Modelo;
import	java.applet.Applet; import java.applet.AudioClip; import		java.awt.Color;
import		java.awt.Font; import	java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.KeyEvent; import
java.awt.event.KeyList ener;	import
java.net.URL;
import javax.swing.JPanel;
public class Jogo extends JPanel{
URL
direcaoSonSalto,direcaoSonChoque; AudioClip sonChoque,sonSalto;
Homem homem=new Homem(this); Obstaculo	obstaculo=new Obstaculo(this);Fundo fundo=new Fundo(this);
public	static	boolean jogoFinalizado=false; public static boolean perdeVida=false;
public static int vidas=3; public static int pontos=0; public static int nivel=1;
public	Jogo(){
direcaoSonChoque=getClass().getResource("/Modelo/choque.w av");
sonChoque=Applet.newAudioClip(direcaoSonChoque);
direcaoSonSalto=getClass().getResource("/Modelo/salto.wav"); sonSalto=Applet.newAudioClip(direcaoSonSalto);
addKeyListener(new KeyListener(){ @Override
public void keyTyped(KeyEvent e) {
}
@Override
public	void	keyPressed(KeyEvent	e)	{
if(e.getKeyCode()==KeyEvent.VK_SP ACE){sonSalto.play(); homem.keyPressed(e);
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
setFocusable(true);
}
public	void mover(){ obstaculo.mover()
; homem.mover(); fundo.mover();
}
@Override	public	void
paintComponent(Graphics	g){ super.paintComponent(g);
Graphics2D	g2	=
(Graphics2D)g;
empate(g2); empatePontuacao(g2);
}
public	void	empate
(Graphics2D	g){ fundo.paint(g);
homem.paint(g); obstaculo.paint(g)
;mover();
public	void
empatePontuacao(Graphics2D	g){ Graphics2D g1=g,g2=g;
Font	score=new
Font("Arial",Font.BOLD,30); g.setFont(score);
g.setColor(Color.blue); g1.drawString("Pontuacao	: "+pontos,1100,30);
g1.drawString("Vidas:		"+vidas,20,30); g1.drawString("
Nivel:"+nivel,570,30);
if(jogoFinalizado){ g2.setColor(Color.red);
g2.drawString("!!! Você Perdeu !!!",((float)getBounds().getCenterX()/2)+170,70);
}
}
public	void	fimJogo(){ jogoFinalizado=true;
sonChoque.
play();
}
public	void perdeVida(){ sonChoque.play();
perdeVida=true;
}
}
Pacote Principal
package Modelo;
import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JOptionPane;
public class Principal {
public static int reiniciaJogo=- 1; public static void main(String[]args){
JOptionPane.showMessageDialog(null,"Esta pronto?");
JFrame	janela=new JFrame("Jogo");		Jogo jogo=new Jogo();
janela.add(jogo); janela.setSize(1300,400); janela.setLocation(70,200);
janela.setVisible(true);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while(true){ if(jogo.jogoFinalizado
){
reiniciaJogo=JOptionPane.showConfirmDialog(null,"Que	pena	você	perdeu. Gostaria	de	reiniciar	o	jogo?","Perdeu",JOptionPane.YES_NO_OPTION);
if(reiniciaJogo==0){reiniciaValores();	}else
if(reiniciaJogo==1){
System.exit(0);
}
}else{
jogo.repai nt();try {
Thread.sleep(10);
}		catch	(InterruptedException	ex)	{ Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
if(Jogo.perdeVida==true){ JOptionPane.showMessageDialog(null, "Cuidado!!!"); Jogo.perdeVida=false;
Jogo.vidas--; Homem.y_inicial=270; Homem.saltando=false; Obstaculo.x_inicial=1300;
}
}
}
}
public	static	void reiniciaValores(){ Jogo.jogoFinalizado=false;
Obstaculo.x_auxiliar=-4;
Jogo.pontos=0;
Jogo.nivel=1; Jogo.vidas=3; reiniciaJogo=-1; Obstaculo.x_inicial= 1300;
}
}
Pacote Homem-Personagem
package Modelo;
import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.KeyEve nt;	import
java.awt.geom.Area; import
java.awt.geom.Ellipse2D; import javax.swing.ImageIcon;
public class Homem { Jogo jogo;
static	boolean saltando=false; boolean sobe=false;
boolean baixo=false;
Area pernadireita,pernaesquerda,corpo,humano; int largoPersonagem=112;
int altoPersonagem=78
;
static	int
x_inicial=50;	static int y_inicial=270;
int x_auxiliar=0; int y_auxiliar=0;
public	Homem(Jogo jogo){this.jogo=jogo;
}
public void mover(){
if(x_inicial+x_auxiliar>0	&&	x_inicial+x_auxiliar<jogo.getWidth()- largoPersonagem){x_inicial+=x_auxiliar;
}
ndo){
if(salta
if(y_inicial==270){ sobe=true; y_auxiliar
=-2;
baixo=fal se;
}
if(y_inicial==1
50){	baixo=true; y_auxiliar=2; sobe=false;
}
if(sob e){
y_inicial+=y_auxiliar;
}
if(baix o){
y_inicial+=y_aux iliar; if(y_inicial==270){ saltando=false;
}
}
}
}
public void paint(Graphics2D g){
ImageIcon homem=new ImageIcon(getClass().getResource("/multimidia/homem.png")); g.drawImage(homem.getImage(), x_inicial,y_inicial,largoPersonagem,altoPersonagem,null);
}
public	void	keyPressed(KeyEvent	e){ if(e.getKeyCode()==KeyEvent.VK_SPACE){
saltando=
true;
}
}
public Area getBounds(){
Rectangle	forma1=new
Rectangle(x_inicial,y_inicial,95,62);	corpo=new Area(forma1);
Ellipse2D	forma2=new	Ellipse2D.Double(x_inicial,y_inicial+28,48,48);
pernadireita
=newArea(forma2);
Ellipse2D	forma3=new
Ellipse2D.Double(x_inicial+73,y_inicial+39,38,38); pernaesquerda=new	Area(forma3);
humano=corpo; humano.add(corpo); humano.add(pernadireita);
humano.add(pernaesquerda);
return humano;
}
}
Pacote Cenário fundo do jogo
package Modelo;
import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.KeyEve nt;	import
java.awt.geom.Area; import java.awt.geom.Ellipse2 D;
import javax.swing.ImageIcon;
public class Homem { Jogo jogo;
static	boolean saltando=false;
an
sobe=false; leanbaixo=false;
boole
boo
Area pernadireita,pernaesquerda,corpo,humano;
int largoPersonagem=11 2;	int
altoPersonagem=78;
static	int
x_inicial=50; static int y_inicial=270;
int x_auxiliar=0; int y_auxiliar=0;
public	Homem(Jogo jogo){this.jogo=jogo;
}
public void mover(){
if(x_inicial+x_auxiliar>0	&&	x_inicial+x_auxiliar<jogo.getWidth()-largoPersonagem){ x_inicial+=x_auxiliar;
}
ndo){
if(salta
if(y_inicial==270){ sobe=true; y_auxiliar
=-2;
baixo=fal se;
}
if(y_inicial==1
50){	baixo=true; y_auxiliar=2; sobe=false;
}
if(sob e){
y_inicial+=y_auxiliar;
}
ixo){
if(ba
y_inicial+=y_auxili ar; if(y_inicial==270){ saltando=false;
}
}
}
}
public	void	paint(Graphics2D	g){
ImageIcon homem=new ImageIcon(getClass().getResource("/multimidia/homem.png")); g.drawImage(homem.getImage(), x_inicial,y_inicial,largoPersonagem,altoPersonagem,null);
}
public	void	keyPressed(KeyEvent	e){ if(e.getKeyCode()==KeyEvent.VK_SPACE){
saltando=
true;
}
}
public Area getBounds(){
Rectangle	forma1=new
Rectangle(x_inicial,y_inicial,95,62);	corpo=new Area(forma1);
Ellipse2D	forma2=new	Ellipse2D.Double(x_inicial,y_inicial+28,48,48);
pernadireita
=newArea(forma2);
Ellipse2D	forma3=new
Ellipse2D.Double(x_inicial+73,y_inicial+39,38,38); pernaesquerda=new Area(forma3);
humano=corpo; humano.add(corpo); humano.add(pernadireita); humano.add(pernaesquerd a);
return humano;
}
}
Pacote Obstáculo
package Modelo;
import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Area; import
java.awt.geom.Ellipse2D; import javax.swing.ImageIcon;
public	class Obstaculo { Jogo jogo;
Area saco,sujeira,lixo;
int largoObstaculo=70; int altoObstaculo=70; static	int
x_inicial=1300; static	int
y_inicial=270;
static int x_auxiliar=-4;
public	Obstaculo(Jogo jogo){this.jogo=jogo;
}
public	void mover(){ if(x_inicial<=- 100){
jogo.pontos++;	x_inicial=1300;
if(jogo.pontos==3	|	jogo.pontos==6	|	jogo.pontos==9	| jogo.pontos==12){x_auxiliar+=-2;
jogo.nivel++;
}
}else{ if(colisao()){ if(jogo.vidas=
=0){
jogo.fimJogo ();
}else
{
jogo.perdeVi da();
}
}else{
x_inicial+=x_auxiliar;
}
}
}
public void paint(Graphics2D g){
ImageIcon	lixo=new	ImageIcon(getClass().getResource("/multimidia/lixo.png")); g.drawImage(lixo.getImage(),x_inicial,y_inicial,largoObstaculo,altoObstaculo,null);
}
public Area getBounds(){
Ellipse2D	forma1=new
Ellipse2D.Double(x_inicial,y_inicial,40,40);	Rectangle forma2=new Rectangle(x_inicial+12,y_inicial+16,50,53);
saco=new Area(forma1); sujeira=new Area(forma2);
lixo=saco; lixo.add(saco); lixo.add(sujeira);
return lixo;
}
public boolean colisao(){
Area	areaA=new	Area(jogo.homem.getBounds()); areaA.intersect(getBounds());
return !areaA.isEmpty();
ANEXOS

Continue navegando