-
Notifications
You must be signed in to change notification settings - Fork 0
3D View_pt
Início | Referência completa de ações | Extensões
O PyGameMaker pode renderizar uma sala como uma vista 3D em primeira pessoa no estilo Doom/Wolfenstein em vez da habitual vista de cima — muros como faixas verticais, um chão e um teto coloridos ou com textura, um céu panorâmico opcional e sprites "billboard" para objetos e monstros. A lógica do jogo (movimento, colisões, eventos) não muda; muda apenas como a sala é desenhada.
Isso é fornecido pela extensão 2.5D Raycast integrada (a função Vista 3D), ativada por padrão. Ela exporta para os três destinos — computador, HTML5 e Kivy/Android — então um jogo em primeira pessoa funciona igual em todos os lugares.
Os exemplos incluídos raycast_1–raycast_4 são jogos completos e jogáveis (um
labirinto simples, um jogo de dois níveis com objetos e um monstro, uma variante com
saúde e kits médicos e uma demonstração de barra de status no estilo DOOM).
- Uma sala se torna em primeira pessoa quando um objeto executa a ação Ativar vista
Raycast (geralmente no seu evento Criar). Esse objeto é a câmera por padrão —
sua posição é o ponto de vista e seu
facing_angle(ângulo de visão) é a direção do olhar. -
Os muros são suas instâncias sólidas. O renderizador deriva finas arestas de
muro de cada objeto sólido na sala, em uma grade cujo tamanho é o parâmetro
cell_sizeda ação (32 por padrão — o tamanho que todos os exemplosmaze_*/raycast_*usam). Um objeto sólido com sprite de muro texturiza o muro; caso contrário, usa-se uma corwall_coloruniforme. -
A câmera gira ao mudar
facing_angle(ver Definir ângulo de visão) e se move com as ações de movimento habituais (ex.set_direction_speedcomdirection = "facing_angle"para andar para frente). - As instâncias não sólidas com sprite (objetivos, objetos, monstros) são desenhadas como billboards voltados para a câmera, corretamente ocultados pelos muros.
| Ação | O que faz |
|---|---|
Ativar vista Raycast (enable_raycast_view) |
Muda a sala atual para a vista em primeira pessoa (ou volta) e configura a câmera: camera_object, fov, render_distance, cell_size, cores e texturas de muro/chão/teto, uma sky_texture opcional e viewport_height (uma barra no estilo DOOM). |
Definir ângulo de visão (set_facing_angle) |
Gira a câmera. Ângulo em graus GameMaker (0 = direita, 90 = cima); relative soma ao ângulo atual. |
Desenhar minimapa (draw_minimap) |
Desenha um minimapa orientado ao norte dos muros da sala com um marcador "você está aqui". Uma ação de HUD — coloque-a em um evento Desenhar. |
Desenhar HUD DOOM (draw_doom_hud) |
Desenha uma barra de status inferior no estilo DOOM: barra de saúde + número, um rosto que reage à saúde, pontuação, vidas e um contador de objetivo. Combina-se com viewport_height de enable_raycast_view. |
Veja a Referência completa de ações para todos os parâmetros.
No objeto jogador:
-
Criar:
Ativar vista Raycast(deixecamera_objectvazio para que o jogador seja a câmera). -
Teclado Esquerda / Direita:
Definir ângulo de visãocomrelativeativo (ex. ±3°). -
Teclado Cima:
Definir direção e velocidadecomdirection = facing_anglee uma pequena velocidade para andar para frente.
Construa a sala com objetos-muro sólidos em uma grade de 32 pixels, exatamente como
os exemplos maze_* — o raycaster transforma esses muros em corredores 3D.
- As ações de HUD (
draw_minimap,draw_doom_hude as habituaisdraw_score/draw_lives/draw_text) sobrepõem-se por cima da imagem em primeira pessoa, em coordenadas de tela. - Os muros são estáticos para a passagem em primeira pessoa — os muros criados/destruídos após o carregamento da sala não remodelam a geometria 3D.
- Se a extensão 2.5D Raycast estiver desativada, uma sala que ativa a vista simplesmente renderiza de cima e o IDE avisa você ao carregar — veja Extensões.
- Extensões — como a Vista 3D é entregue e como desativá-la
- Referência completa de ações — as quatro ações em detalhe
- Editor de salas — posicionar os objetos-muro a partir dos quais a vista é construída