ES
Erick Silva Mendes
3 Aulas
23 Materiais
0 Seguidores
1 Seguindo
Certificado em IA 1
Mestre em IA
3/5
Aprendiz de Aulas
Aprendiz de Avaliações
Energizado
Flashcards
Flashcards: Introdução à física
No desenvolvimento de jogos, muitas vezes é necessário saber quando dois objetos no jogo se cruzam ou entram em contato. Isso é conhecido como (collision detection) detecção de colisão (collision response.). Quando uma colisão é detectada, normalmente você quer que algo aconteça. Isso é conhecido como resposta à colisão .
A Godot oferece diversos objetos de colisão em 2D e 3D para fornecer detecção e resposta a colisões. Tentar decidir qual usar para o seu projeto pode ser confuso. Você pode evitar problemas e simplificar o desenvolvimento se entender como cada um funciona e quais são suas vantagens e desvantagens.
Neste guia, você aprenderá:
Os quatro tipos de objetos de colisão de Godot
Como cada objeto de colisão funciona
Quando e por que escolher um tipo em vez de outro
Observação
Os exemplos deste documento usarão objetos 2D. Cada objeto físico 2D e forma de colisão tem um equivalente direto em 3D e, na maioria dos casos, funcionam praticamente da mesma maneira.
Objetos de colisão
Godot oferece quatro tipos de objetos de colisão, todos estendendo CollisionObject2D . Os três últimos listados abaixo são corpos físicos e também estendem PhysicsBody2D .
Área2D
Area2DOs nós fornecem detecção e influência . Eles podem detectar quando objetos se sobrepõem e emitir sinais quando corpos entram ou saem. Um nó Area2D também pode ser usado para substituir propriedades físicas, como gravidade ou amortecimento, em uma área definida.
***Nós de área fornecem detecção e influência . Eles podem detectar quando objetos se sobrepõem e emitir sinais quando corpos entram ou saem. Áreas também podem ser usadas para substituir propriedades físicas, como gravidade ou amortecimento, em uma área definida.
Existem três usos principais para Area2D :
Substituindo parâmetros físicos (como gravidade) em uma determinada região.
Detectar quando outros corpos entram ou saem de uma região ou quais corpos estão atualmente em uma região.
Verificando outras áreas para sobreposição.
Por padrão, as áreas também recebem entrada de mouse e tela sensível ao toque.
******
StaticBody2D
Um corpo estático é aquele que não é movido pelo mecanismo de física. Ele participa da detecção de colisão, mas não se move em resposta a ela. São mais frequentemente usados para objetos que fazem parte do ambiente ou que não precisam ter nenhum comportamento dinâmico.
Um corpo estático é aquele que não é movido pelo mecanismo de física. Ele participa da detecção de colisão, mas não se move em resposta a ela. No entanto, ele pode transmitir movimento ou rotação a um corpo em colisão como se estivesse em movimento, usando suas propriedades constant_linear_velocitye .constant_angular_velocity
StaticBody2DOs nós são usados com mais frequência para objetos que fazem parte do ambiente ou que não precisam ter nenhum comportamento dinâmico.
Exemplos de uso para StaticBody2D:
Plataformas (incluindo plataformas móveis)
Correias transportadoras
Paredes e outros obstáculos
RigidBody2D
Este é o nó que implementa a física 2D simulada. Você não controla um objeto RigidBody2Ddiretamente, mas aplica forças a ele (gravidade, impulsos, etc.) e o mecanismo de física calcula o movimento resultante. Saiba mais sobre o uso de corpos rígidos.
Este é o nó que implementa a física 2D simulada. Você não controla um RigidBody2D diretamente. Em vez disso, você aplica forças a ele e o mecanismo de física calcula o movimento resultante, incluindo colisões com outros corpos e respostas de colisão, como quiques, rotações, etc.
Você pode modificar o comportamento de um corpo rígido por meio de propriedades como "Massa", "Atrito" ou "Salto", que podem ser definidas no Inspetor.
O comportamento do corpo também é afetado pelas propriedades do mundo, conforme definido em Configurações do projeto > Física , ou pela inserção de uma Area2D que substitui as propriedades físicas globais.
Quando um corpo rígido está em repouso e não se move por um tempo, ele entra em estado de sonolência. Um corpo adormecido age como um corpo estático, e suas forças não são calculadas pelo mecanismo de física. O corpo acorda quando forças são aplicadas, seja por uma colisão ou por meio de código.
CharacterBody2D
Um corpo que fornece detecção de colisão, mas sem física. Todo movimento e resposta à colisão devem ser implementados em código.
Corpos CharacterBody2D detectam colisões com outros corpos, mas não são afetados por propriedades físicas como gravidade ou atrito. Em vez disso, eles devem ser controlados pelo usuário por meio de código. O mecanismo de física não moverá o corpo de um personagem.
Ao mover o corpo de um personagem, você não deve defini-lo positiondiretamente. Em vez disso, use os métodos move_and_collide()ou move_and_slide(). Esses métodos movem o corpo ao longo de um determinado vetor, e ele para instantaneamente se uma colisão com outro corpo for detectada. Após a colisão do corpo, qualquer resposta à colisão deve ser codificada manualmente.
Resposta de colisão de caracteres
Após uma colisão, você pode querer que o corpo salte, deslize ao longo de uma parede ou altere as propriedades do objeto atingido. A maneira como você lida com a resposta à colisão depende do método usado para mover o CharacterBody2D.
Nó
Usado Para:
Movimento:
Colisão:
CharacterBody2D
Heróis, Jogadores
Manual (via código)
Garantida, mas a resposta é manual.
StaticBody2D
Paredes, Chão, Elevadores
Nenhum (movimento manual forçado)
Sólida e Imóvel.
RigidBody2D
Barris, Caixas, Balas
Automática (via forças/motor de física)
Sólida e Dinâmica.
Area2D
Moedas, Zonas de Dano
Qualquer um, mas não afeta colisão.
Detecção/Sinalização (Não é sólida)
.
Nó
Exemplo no Jogo
Por que Usar?
CharacterBody2D
O Herói que o jogador controla.
Queremos controle total sobre o movimento do herói (pulo, corrida, dash), e não que ele seja jogado por forças aleatórias. A física é escrita no código para ser precisa.
StaticBody2D
Uma plataforma de pedra ou a parede de uma masmorra.
São objetos que não devem se mover quando o herói pisa neles ou esbarra neles. Eles definem a geografia do nível.
RigidBody2D
Um barril que pode ser empurrado ou um fragmento de parede que cai quando quebrado.
Queremos que o motor de física cuide do movimento do barril, fazendo-o rolar, cair sob a gravidade e quicar, de forma realista, sem escrever todo o cálculo.
Area2D
Uma zona de veneno no chão, ou um ponto de checkpoint.
Não queremos que o herói colida com a Area2D (pode atravessar o gás/veneno), mas queremos detectar quando ele está lá para aplicar um efeito (como dano ou salvar o jogo).
PE
Prof. Erick Silva Mendes
-
Jogo
Metodologia Científica e Processo de Ideação em Projetos Web
PE
Prof. Erick Silva Mendes
-
Mapa mental
Metodologia Científica e Ideação em Projetos Web
PE
Prof. Erick Silva Mendes
-
Atividade
Dinâmicas de Quebra-Gelo para Turma de Informática
PE
Prof. Erick Silva Mendes
-
Atividade
Quebra-gelos para Metodologia Científica e Ideação em Projetos Web
PE
Prof. Erick Silva Mendes
-
Atividade
Metodologia Científica no Desenvolvimento Web
PE
Prof. Erick Silva Mendes
-
Apresentação
Metodologia e Ideação no Desenvolvimento Web
PE
Prof. Erick Silva Mendes
-
Mapa mental
Metodologia Científica e Ideação em Projetos Web
PE
Prof. Erick Silva Mendes
-
Outro
Investigação Científica e Desenvolvimento Local
PE
Prof. Erick Silva Mendes
-
Outro
Investigação Científica e Metodologia no Mundo dos Influenciadores Digitais
PE
Prof. Erick Silva Mendes
-
Junte-se a esse professor e mais de 5 milhões que já se conectaram!
Na Teachy você pode montar planos de aula, atividades, criar listas de exercícios e provas em minutos!
Soluções
2026 - Todos os direitos reservados