Area2D

package
v0.0.0-...-c858641 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2025 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

graphics.gd/classdb/Area2D is a region of 2D space defined by one or multiple graphics.gd/classdb/CollisionShape2D or graphics.gd/classdb/CollisionPolygon2D child nodes. It detects when other [graphics.gd/classdb/CollisionObject2D]s enter or exit it, and it also keeps track of which collision objects haven't exited it yet (i.e. which one are overlapping it).

This node can also locally alter or override physics parameters (gravity, damping) and route audio to custom audio buses.

Note: Areas and bodies created with graphics.gd/classdb/PhysicsServer2D might not interact as expected with [graphics.gd/classdb/Area2D]s, and might not emit signals or track objects correctly.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Advanced

type Advanced = class

Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.

type Any

type Any interface {
	gd.IsClass
	AsArea2D() Instance
}

type Extension

type Extension[T gdclass.Interface] struct{ gdclass.Extension[T, Instance] }

Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this Extension

func (*Extension[T]) AsArea2D

func (self *Extension[T]) AsArea2D() Instance

func (*Extension[T]) AsCanvasItem

func (self *Extension[T]) AsCanvasItem() CanvasItem.Instance

func (*Extension[T]) AsCollisionObject2D

func (self *Extension[T]) AsCollisionObject2D() CollisionObject2D.Instance

func (*Extension[T]) AsNode

func (self *Extension[T]) AsNode() Node.Instance

func (*Extension[T]) AsNode2D

func (self *Extension[T]) AsNode2D() Node2D.Instance

func (*Extension[T]) AsObject

func (self *Extension[T]) AsObject() [1]gd.Object

type ID

type ID Object.ID

ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.

func (ID) Instance

func (id ID) Instance() (Instance, bool)

type Instance

type Instance [1]gdclass.Area2D

Instance of the class with convieniently typed arguments and results.

var Nil Instance

Nil is a nil/null instance of the class. Equivalent to the zero value.

func New

func New() Instance

func (Instance) AngularDamp

func (self Instance) AngularDamp() Float.X

func (Instance) AngularDampSpaceOverride

func (self Instance) AngularDampSpaceOverride() SpaceOverride

func (Instance) AsArea2D

func (self Instance) AsArea2D() Instance

func (Instance) AsCanvasItem

func (self Instance) AsCanvasItem() CanvasItem.Instance

func (Instance) AsCollisionObject2D

func (self Instance) AsCollisionObject2D() CollisionObject2D.Instance

func (Instance) AsNode

func (self Instance) AsNode() Node.Instance

func (Instance) AsNode2D

func (self Instance) AsNode2D() Node2D.Instance

func (Instance) AsObject

func (self Instance) AsObject() [1]gd.Object

func (Instance) AudioBusName

func (self Instance) AudioBusName() string

func (Instance) AudioBusOverride

func (self Instance) AudioBusOverride() bool

func (Instance) GetOverlappingAreas

func (self Instance) GetOverlappingAreas() []Instance

Returns a list of intersecting [graphics.gd/classdb/Area2D]s. The overlapping area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionLayer must be part of this area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionMask in order to be detected.

For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.

func (Instance) GetOverlappingBodies

func (self Instance) GetOverlappingBodies() []Node2D.Instance

Returns a list of intersecting [graphics.gd/classdb/PhysicsBody2D]s and [graphics.gd/classdb/TileMap]s. The overlapping body's graphics.gd/classdb/CollisionObject2D.Instance.CollisionLayer must be part of this area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionMask in order to be detected.

For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.

func (Instance) Gravity

func (self Instance) Gravity() Float.X

func (Instance) GravityDirection

func (self Instance) GravityDirection() Vector2.XY

func (Instance) GravityPoint

func (self Instance) GravityPoint() bool

func (Instance) GravityPointCenter

func (self Instance) GravityPointCenter() Vector2.XY

func (Instance) GravityPointUnitDistance

func (self Instance) GravityPointUnitDistance() Float.X

func (Instance) GravitySpaceOverride

func (self Instance) GravitySpaceOverride() SpaceOverride

func (Instance) HasOverlappingAreas

func (self Instance) HasOverlappingAreas() bool

Returns true if intersecting any [graphics.gd/classdb/Area2D]s, otherwise returns false. The overlapping area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionLayer must be part of this area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionMask in order to be detected.

For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.

func (Instance) HasOverlappingBodies

func (self Instance) HasOverlappingBodies() bool

Returns true if intersecting any [graphics.gd/classdb/PhysicsBody2D]s or [graphics.gd/classdb/TileMap]s, otherwise returns false. The overlapping body's graphics.gd/classdb/CollisionObject2D.Instance.CollisionLayer must be part of this area's graphics.gd/classdb/CollisionObject2D.Instance.CollisionMask in order to be detected.

For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.

func (Instance) ID

func (self Instance) ID() ID

func (Instance) LinearDamp

func (self Instance) LinearDamp() Float.X

func (Instance) LinearDampSpaceOverride

func (self Instance) LinearDampSpaceOverride() SpaceOverride

func (Instance) Monitorable

func (self Instance) Monitorable() bool

func (Instance) Monitoring

func (self Instance) Monitoring() bool

func (Instance) OnAreaEntered

func (self Instance) OnAreaEntered(cb func(area Instance), flags ...Signal.Flags)

func (Instance) OnAreaExited

func (self Instance) OnAreaExited(cb func(area Instance), flags ...Signal.Flags)

func (Instance) OnAreaShapeEntered

func (self Instance) OnAreaShapeEntered(cb func(area_rid RID.Any, area Instance, area_shape_index int, local_shape_index int), flags ...Signal.Flags)

func (Instance) OnAreaShapeExited

func (self Instance) OnAreaShapeExited(cb func(area_rid RID.Any, area Instance, area_shape_index int, local_shape_index int), flags ...Signal.Flags)

func (Instance) OnBodyEntered

func (self Instance) OnBodyEntered(cb func(body Node2D.Instance), flags ...Signal.Flags)

func (Instance) OnBodyExited

func (self Instance) OnBodyExited(cb func(body Node2D.Instance), flags ...Signal.Flags)

func (Instance) OnBodyShapeEntered

func (self Instance) OnBodyShapeEntered(cb func(body_rid RID.Any, body Node2D.Instance, body_shape_index int, local_shape_index int), flags ...Signal.Flags)

func (Instance) OnBodyShapeExited

func (self Instance) OnBodyShapeExited(cb func(body_rid RID.Any, body Node2D.Instance, body_shape_index int, local_shape_index int), flags ...Signal.Flags)

func (Instance) OverlapsArea

func (self Instance) OverlapsArea(area Node.Instance) bool

Returns true if the given graphics.gd/classdb/Area2D intersects or overlaps this graphics.gd/classdb/Area2D, false otherwise.

Note: The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead.

func (Instance) OverlapsBody

func (self Instance) OverlapsBody(body Node.Instance) bool

Returns true if the given physics body intersects or overlaps this graphics.gd/classdb/Area2D, false otherwise.

Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.

The 'body' argument can either be a graphics.gd/classdb/PhysicsBody2D or a graphics.gd/classdb/TileMap instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body.

func (Instance) Priority

func (self Instance) Priority() int

func (Instance) SetAngularDamp

func (self Instance) SetAngularDamp(value Float.X)

func (Instance) SetAngularDampSpaceOverride

func (self Instance) SetAngularDampSpaceOverride(value SpaceOverride)

func (Instance) SetAudioBusName

func (self Instance) SetAudioBusName(value string)

func (Instance) SetAudioBusOverride

func (self Instance) SetAudioBusOverride(value bool)

func (Instance) SetGravity

func (self Instance) SetGravity(value Float.X)

func (Instance) SetGravityDirection

func (self Instance) SetGravityDirection(value Vector2.XY)

func (Instance) SetGravityPoint

func (self Instance) SetGravityPoint(value bool)

func (Instance) SetGravityPointCenter

func (self Instance) SetGravityPointCenter(value Vector2.XY)

func (Instance) SetGravityPointUnitDistance

func (self Instance) SetGravityPointUnitDistance(value Float.X)

func (Instance) SetGravitySpaceOverride

func (self Instance) SetGravitySpaceOverride(value SpaceOverride)

func (Instance) SetLinearDamp

func (self Instance) SetLinearDamp(value Float.X)

func (Instance) SetLinearDampSpaceOverride

func (self Instance) SetLinearDampSpaceOverride(value SpaceOverride)

func (Instance) SetMonitorable

func (self Instance) SetMonitorable(value bool)

func (Instance) SetMonitoring

func (self Instance) SetMonitoring(value bool)

func (*Instance) SetObject

func (self *Instance) SetObject(obj [1]gd.Object) bool

func (Instance) SetPriority

func (self Instance) SetPriority(value int)

func (Instance) Virtual

func (self Instance) Virtual(name string) reflect.Value

type SpaceOverride

type SpaceOverride int //gd:Area2D.SpaceOverride
const (
	// This area does not affect gravity/damping.
	SpaceOverrideDisabled SpaceOverride = 0
	// This area adds its gravity/damping values to whatever has been calculated so far (in [Instance.Priority] order).
	SpaceOverrideCombine SpaceOverride = 1
	// This area adds its gravity/damping values to whatever has been calculated so far (in [Instance.Priority] order), ignoring any lower priority areas.
	SpaceOverrideCombineReplace SpaceOverride = 2
	// This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
	SpaceOverrideReplace SpaceOverride = 3
	// This area replaces any gravity/damping calculated so far (in [Instance.Priority] order), but keeps calculating the rest of the areas.
	SpaceOverrideReplaceCombine SpaceOverride = 4
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL