Skip to content

bryanb619/FPS-Python-Game

Repository files navigation

Relatório do Projecto Final [Recurso]

Introdução à Matemática e Física Para Videojogos I

Projecto de Recurso IMFJ1 "FPS-Like"

Versão # 1.0 Terça, Julho 15, 2021

Tabela de Conteúdos

  1. Informação Base
  2. Sumário do Projecto
  3. Movimentos & Rotação do Jogador
  4. Cenário e Implementação 3D
  5. Configurações do Jogo
  6. Contribuições individuais

1. Informação Base

Nome do Projecto

Projecto de Recurso IMFJ1 "FPS-Like"

Membros do Projecto

Rafaela Henriques 22005252 Github Username: rafaelahenriques

Sónia Raposo 22000344 Github Username Sonia-Raposo

Steven Hall 22001753 Github Username: bryanb619

Data de Completação do Projecto

13.07.2021

2. Sumário do Projecto

Este projecto consiste na construção de um ambiente "FPS-Like" 3D que consiste num mapa com paredes onde é possivel controlar um jogador em primeira pessoa.

O jogador consegue movimentar-se para todas as direcções, rodar a câmara de visão e correr, utilizando as teclas respectivas:

Controlos básicos

  • Frente: Tecla W
  • Trás: Tecla S
  • Esquerda: Tecla A
  • Direita: Tecla D

Controlos Câmara

  • Rodar Câmara para esquerda: Seta Esquerda
  • Rodar Câmara para direita: Seta Direita

Controlos avançados

  • Sprint: Tecla Shift + W

Sair do Jogo

  • Exit: Tecla Esc

3. Movimentos & Rotação do Jogador

Para a criação do jogador foi criado um ficheiro py: PlayerScript. É neste ficheiro que foi criada uma classe onde foi definida a sua posição em x e y e o seu ângulo.

Foi então criada uma função movimento onde é utilizada a biblioteca math para definir o sin e cos do movimento do jogador.

Após isso, foram então definidas as Teclas do teclado que permitem controlar e movimentar o jogador, sendo:

Controlos básicos

  • Frente: Tecla W
  • Trás: Tecla S
  • Esquerda: Tecla A
  • Direita: Tecla D

Controlos Câmara

  • Rodar Câmara para esquerda: Seta Esquerda
  • Rodar Câmara para esquerda: Seta Direita

Controlos avançados

  • Sprint: Tecla Shift + WS

Foram definidos também os controlos de rato para movimentar o jogador:

Controlos básicos

  • Direcções: Movimento com o rato

4. Cenário e Implementação 3D

Para a criação do mapa foi criado um ficheiro py: Map. O tipo de mapa criado é um text_map em 2D para a contrução do mesmo foi utilizada a letra I.

Para criar o mapa em si, são detectadas as letras I através de uma função if que transforma a letra numa parede.

Sendo assim, foram criados os limites do mapa, colocando I nos cantos superior, inferior e lateral no text_map, e colocadas paredes dentro do mapa, intercalando com "." que representa espaço vazio.

Para transformar este mapa 2D numa vista 3D, é utilizada a fórmula que se encontra no ficheiro py: AppSettings:

Multiplicamos ainda distancia por 3, para optimizar a escala Isso faz com que o escala do cenário seja "aumentada"

proj_3d = 3 * dist * walls

Sendo que a multiplicação por da distância por 3 serve para projectar e optimizar a escala tornando assim a vista e a navegação pelo mapa de forma mais agradável para o jogador devido à escala mais realista.

5. Configurações do Jogo

Para definir as configurações do jogo, foi criado um ficheiro py: AppSettings.

É neste ficheiro que são definidas as configurações tais como:

Configurações de ecrã

  • Largura e Altura da tela de jogo
  • FPS (Valor Limite de Frames por Second)

Configurações Ray Casting

  • Ponto de Vista
  • Número de raios
  • Dimensão
  • Distância
  • Projecção 3D
  • Ângulo
  • Escala

Configurações de cores do jogo

  • Lista de cores em código RGB usadas no jogo

6.Contribuições individuais

Rafaela Henriques

  • Organização e correções de código
  • Criação do ficheiro Map
  • Criação do ficheiro AppSettings
  • Configurações de mapa
  • Realização do ficheiro Postmortem

Sónia Raposo

  • Organização e correções de código
  • Criação do ficheiro PlayScript
  • Criação do ficheiro Main
  • Configurações ecrã
  • Movimentos básicos do jogador
  • Realização do ficheiro readme

Steven Hall

  • Organização e correções de código
  • Configurações Base
  • Criação do ficheiro Ray
  • Configurações dos Visuais do Jogo em 3D
  • Movimentos especiais do jogador (Sprint e Salto)
  • Configurações de Cores no Mapa

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages