---
title: "Corpo 2D"
version: snapshot-2026-10-06
engineGeneration: astra-current
language: C#
status: source-reviewed
runtimeVerified: false
platformEvidence: []
url: https://astraengine.com.br/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/
---
# Corpo 2D
Corpo XY independente de física 3D
**Família:** Física 2D · **Grupo:** Corpos · **Identificador:** `astra.physics2d.body` · **Payload:** 1
:::note[Escopo da evidência]
Este contrato foi extraído dos descritores compilados da engine, incluindo padrões resolvidos. A presença do contrato não substitui a validação do comportamento em um aparelho.
:::
## Para que usar
Corpo XY independente de física 3D
Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.
## Criar e configurar
Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Corpos** → **Corpo 2D**.
O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.Body2D](/pt-br/snapshot-2026-10-06/api/astra-components-body2d/).
## Exemplo de uso
Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.
## Dependências
- [Colisor 2D](/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/): Adicione uma forma 2D ao corpo
## Conflitos
- [Corpo físico](/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/): Corpos 2D e 3D não compartilham o mesmo objeto
- [Personagem](/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/): Personagem 3D possui a pose deste objeto
- [Colisor 3D](/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/): Colisores 2D e 3D usam mundos separados
## Edição e ciclo de vida
| Operação | Contrato |
|---|---|
| Adicionar/remover em Play | ponto seguro |
| Alterar propriedades em Play | ponto seguro |
| Múltiplas instâncias | Não |
| Versão do payload | 1 |
Alterações em ponto seguro são aplicadas entre passos da simulação. Um componente exigido por outro não pode ser removido enquanto a dependência existir. Salvar a cena autoral e modificar o mundo de Play são operações distintas; veja [Play e cena autoral](/pt-br/snapshot-2026-10-06/conceitos/play-e-cena-autoral/).
## Propriedades
Valores abaixo são resolvidos pelo descritor de um componente recém-criado. Campos por slot dependem dos recursos atribuídos. Um campo sem padrão significa que o descritor não fornece um valor independente de contexto.
### Corpo
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Massa**](#field-mass)
`mass` | número · kg | 1 | 0.001 … 100000 |
| [**Escala gravidade**](#field-gravity-scale)
`gravity_scale` | número | 1 | -100 … 100 |
| [**Movimento**](#field-motion)
`motion` | enumeração | Dinâmico | Estático \| Cinemático \| Dinâmico |
Massa · mass
**Onde:** Inspector → **Corpo 2D** → **Corpo** → **Massa**.
**Uso e efeito:** Massa do corpo dinâmico em kg; influencia resposta a força/impulso.
**Valor:** 1 · **Tipo:** número · **Unidade:** kg · **Domínio:** 0.001 … 100000.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Escala gravidade · gravity_scale
**Onde:** Inspector → **Corpo 2D** → **Corpo** → **Escala gravidade**.
**Uso e efeito:** Multiplica gravidade mundial deste corpo 2D.
**Valor:** 1 · **Tipo:** número · **Domínio:** -100 … 100.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Movimento · motion
**Onde:** Inspector → **Corpo 2D** → **Corpo** → **Movimento**.
**Uso e efeito:** Escolhe autoridade estática/cinemática/dinâmica no domínio do corpo.
**Valor:** Dinâmico · **Tipo:** enumeração · **Domínio:** Estático \| Cinemático \| Dinâmico.
### Movimento
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Velocidade X**](#field-velocity-x)
`velocity_x` | número · m/s | 0 | -10000 … 10000 |
| [**Velocidade Y**](#field-velocity-y)
`velocity_y` | número · m/s | 0 | -10000 … 10000 |
| [**Velocidade angular**](#field-angular-velocity-degrees)
`angular_velocity_degrees` | número · graus/s | 0 | -36000 … 36000 |
| [**Arrasto linear**](#field-linear-damping)
`linear_damping` | número | 0.05 | 0 … 100 |
| [**Arrasto angular**](#field-angular-damping)
`angular_damping` | número | 0.05 | 0 … 100 |
| [**Fixar rotação**](#field-fixed-rotation)
`fixed_rotation` | booleano | falso | verdadeiro \| falso |
| [**Permitir repouso**](#field-allow-sleep)
`allow_sleep` | booleano | verdadeiro | verdadeiro \| falso |
Velocidade X · velocity_x
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Velocidade X**.
**Uso e efeito:** Velocidade linear inicial/autorada do corpo, eixo X.
**Valor:** 0 · **Tipo:** número · **Unidade:** m/s · **Domínio:** -10000 … 10000.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Velocidade Y · velocity_y
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Velocidade Y**.
**Uso e efeito:** Velocidade linear inicial/autorada do corpo, eixo Y.
**Valor:** 0 · **Tipo:** número · **Unidade:** m/s · **Domínio:** -10000 … 10000.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Velocidade angular · angular_velocity_degrees
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Velocidade angular**.
**Uso e efeito:** Velocidade angular 2D em graus/s; não confundir com rad/s da API matemática.
**Valor:** 0 · **Tipo:** número · **Unidade:** graus/s · **Domínio:** -36000 … 36000.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Arrasto linear · linear_damping
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Arrasto linear**.
**Uso e efeito:** Amortecimento de velocidade linear.
**Valor:** 0.05 · **Tipo:** número · **Domínio:** 0 … 100.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Arrasto angular · angular_damping
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Arrasto angular**.
**Uso e efeito:** Amortecimento de velocidade angular.
**Valor:** 0.05 · **Tipo:** número · **Domínio:** 0 … 100.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Fixar rotação · fixed_rotation
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Fixar rotação**.
**Uso e efeito:** Trava a rotação física do Body2D.
**Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
Permitir repouso · allow_sleep
**Onde:** Inspector → **Corpo 2D** → **Movimento** → **Permitir repouso**.
**Uso e efeito:** Permite dormir quando o corpo pode ficar em repouso.
**Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.
Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.
## Roadmap deste componente
[Física 2D](/pt-br/snapshot-2026-10-06/roadmap/fisica-2d/). Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.
Os campos acima pertencem ao contrato existente; novas funções dependem do fechamento da família. Não há datas individuais prometidas para cada propriedade.
## Conferir na sua cena
1. Crie **Corpo 2D** pelo fluxo indicado e resolva as dependências.
2. Altere uma propriedade por vez e observe o efeito esperado na cena.
3. Salve, reabra e confira os valores autorais.
4. Entre em Play e verifique o comportamento com os recursos reais do projeto.
5. Pare o Play e confira a cena autoral.
Este é um roteiro de conferência; não representa um teste executado nesta publicação.
## Limitações da referência
A tabela cobre os tipos de propriedade disponíveis no descritor de reflexão. Não presume persistência de campos transitórios, equivalência com outras engines ou suporte em todos os aparelhos. Recursos, coleções e operações podem exigir APIs específicas.
**Referência de arquitetura registrada pela engine:** [documentação oficial](https://docs.godotengine.org/en/4.5/classes/class_rigidbody2d.html). Essa referência não representa paridade funcional.