Code Monkey home page Code Monkey logo

pokehunter's Introduction

Pokehunter

Projeto de jogo baseado no anime Pokémon.Pokeball

Stacks utilizadas React Native React Native e Expo Expo.

📝 O Projeto

O projeto foi desenvolvido por mim para aprimorar os meus conhecimentos com a ferramenta React Native e será disponibilizado para qualquer desenvolvedor interessado em aprender/estudar as ferramentas utilizadas. No geral neste projeto utilizei:

  • Expo,
  • ContextAPI,
  • API RESTful, PokéAPI,
  • Animated,
  • Gesture Handler,
  • Pan Responder,
  • Axios,
  • Lottie,
  • State,
  • Uncontrolled Components entre outros.

🧐 Como funciona o jogo?

O jogo consiste em arrastar a pokebola pelo mapa ( tela do dispositivo ) até encontrar um pokémon. Cada Pokémon possui uma quantidade de Diamantes, que irão se acumular e aumentar o seu nível de Mestre Pokémon. Todos os pokémons econtrados estão presentes em sua Pokédex.

🚀 Como jogar?

Assumindo que você já possua o React Native disponível em sua máquina.

Você deve ter instalado o NodeJS Após instalação, abra o seu terminal e digite:

node -v

O resultado deverá ser a versão do seu NodeJS

Você também deve ter instalado a ferramenta de versionamento GIT Após instalado, abra o seu terminal e digite:

git clone https://github.com/marcospgsilva/PokeHunter.git

Você também precisará do Expo instalado. Abra o seu terminal e digite para instalá-lo:

npm install expo-cli --global

Certificando-se que todos os pré-requisitos foram cumpridos. Acesse o diretório onde foi clonado o repositório. Ele irá se chamar PokeHunter.

Abra o seu terminal nesta pasta e rode o comando:

npm install

Este comando irá fazer a instalação de todas as dependências da pasta Node_Modules.

Após finalizado, rode o comando:

expo start

Pronto, o aplicativo está pronto para uso.

🔧 Para DEVS

Ao ser carregada, a tela principal ( a que contém o mapa ) gera de forma aleatória uma região no mapa, onde será "encontrado" o pokémon. Utilizando Gesture Handler e Pan Responder, é possível saber qual é a posição atual do toque na tela.

Desta forma, o algoritimo faz a comparação para saber se a posição do toque está dentro da região definida anteriormente.

Assim que a posição é verdadeira, o processo de consumo da API é iniciado utilizando o Axios. Esta requisição nos retorna várias informações e dentre elas, a imagem do pokémon.

OBS: Apesar da PokéAPI ser incrível, as imagens que ela fornece não possuem boa resolução. Logo, utilizei o pokeres.bastionbot.org para pegar estas imagens.

Neste momento entra em ação a utilização ( de forma direta e mais óbvia ) de State, fazendo com que a pokebola pare de ser renderizada e começe o processo de animação/renderização do card principal.

Um array é utilizado para guardar todos os pokémons ( e suas informações que serão posteriormente utilizadas ) e será utilizado para renderizar os pokemons na tela de Pokédex.

Algumas funcionalidades ainda não foram adicionadas, como adição de DB para salvar todo o progesso. Criação de conta entre outros também não foram adicionados, pois este não era o meu objetivo neste projeto.

Para todos que tenham interesse/dúvidas relacionadas ao projeto, estarei disponível em todas as minhas redes sociais.

✍️ Author

👤 Marcos Gomes

pokehunter's People

Contributors

marcospgsilva avatar dependabot[bot] avatar

Stargazers

Gremis Tovar avatar Brendon Guedes avatar Jaon avatar Alex Vieira avatar Stheffany Santos Hadlich avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.