PhysicsBody2D
Abstract base class for 2D game objects affected by physics.
PhysicsBody2D.swift:17class PhysicsBody2D
PhysicsBody2D
is an abstract base class for 2D game objects affected by physics. All 2D physics bodies inherit from it.
Superclasses
class CollisionObject2D
Abstract base class for 2D physics objects.
Citizens in SwiftGodot
Conformances
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol Identifiable<ID>
A class of types whose instances hold the value of an entity with stable identity.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Type members
Instance members
func addCollisionExceptionWith(body: Node?
) Adds a body to the list of bodies that this body can’t collide with.
func getCollisionExceptions(
) -> ObjectCollection<PhysicsBody2D> Returns an array of nodes that were added as collision exceptions for this body.
func getGravity(
) -> Vector2 Returns the gravity vector computed from all sources that can affect the body, including all gravity overrides from
Area2D
nodes and the global world gravity.func moveAndCollide(motion: Vector2, testOnly: Bool, safeMargin: Double, recoveryAsCollision: Bool
) -> KinematicCollision2D? Moves the body along the vector
motion
. In order to be frame rate independent in_physicsProcess(delta:)
or_process(delta:)
,motion
should be computed usingdelta
.func removeCollisionExceptionWith(body: Node?
) Removes a body from the list of bodies that this body can’t collide with.
func testMove(from: Transform2D, motion: Vector2, collision: KinematicCollision2D?, safeMargin: Double, recoveryAsCollision: Bool
) -> Bool Checks for collisions without moving the body. In order to be frame rate independent in
_physicsProcess(delta:)
or_process(delta:)
,motion
should be computed usingdelta
.
Subclasses
class CharacterBody2D
A 2D physics body specialized for characters moved by script.
class RigidBody2D
A 2D physics body that is moved by a physics simulation.
class StaticBody2D
A 2D physics body that can’t be moved by external forces. When moved manually, it doesn’t affect other bodies in its path.