class Eagle::CollisionShape2D

Overview

A child node that gives its parent physics body a shape. It's an alternative to calling .circle, .box or .polygon on the body directly, and it's handy when the shape should appear in the scene tree or be switched off with disabled.

body = RigidBody2D.new(position: v2(100, 0))
body.add(CollisionShape2D.circle(16))
body.add(CollisionShape2D.box(40, 8, offset: v2(0, 20)))

Defined in:

eagle/nodes/physics_nodes.cr

Constructors

Instance Method Summary

Instance methods inherited from class Eagle::Node

<<(child : Node) : self <<, [](path : String) : Node [], []?(path : String) : Node | Nil []?, add(child : Node) : Node
add(*children : Node) : Nil
add
, add_child(child : Node) : Node add_child, add_to_group(group : String) : self add_to_group, ancestor_of?(node : Node) : Bool ancestor_of?, can_process? : Bool can_process?, child?(name : String) : Node | Nil child?, child_added : Eagle::Emitter(Node) child_added, child_count : Int32 child_count, child_removed : Eagle::Emitter(Node) child_removed, children : Array(Eagle::Node) children, children_of(type : T.class) : Array(T) forall T children_of, clear_children : Nil clear_children, draw(g : Graphics) : Nil draw, dump(io : IO = STDOUT, indent = 0) : Nil dump, each_ancestor(& : Node -> ) : Nil each_ancestor, each_child(& : Node -> ) : Nil each_child, each_descendant(&block : Node -> ) : Nil each_descendant, emit_child_added(*args) : Nil emit_child_added, emit_child_removed(*args) : Nil emit_child_removed, emit_tree_entered(*args) : Nil emit_tree_entered, emit_tree_exited(*args) : Nil emit_tree_exited, enter_tree : Nil enter_tree, exit_tree : Nil exit_tree, find(name : String) : Node | Nil find, find_all(type : T.class) : Array(T) forall T find_all, first_child : Node | Nil first_child, free : Nil free, get_node(path : String, type : T.class) : T forall T
get_node(path : String) : Node
get_node
, get_node?(path : String) : Node | Nil get_node?, groups : Set(String) groups, in_group?(group : String) : Bool in_group?, in_tree? : Bool in_tree?, input(event : Event) : Nil input, name : String name, name=(name : String) name=, on_child_added(&block : Node -> Nil) : Proc(Node, Nil) on_child_added, on_child_removed(&block : Node -> Nil) : Proc(Node, Nil) on_child_removed, on_tree_entered(&block : -> Nil) : Proc(Nil) on_tree_entered, on_tree_exited(&block : -> Nil) : Proc(Nil) on_tree_exited, parent : Node | Nil parent, path : String path, physics_process(dt : Float32) : Nil physics_process, process(dt : Float32) : Nil process, process_mode : Eagle::Node::ProcessMode process_mode, process_mode=(process_mode : Eagle::Node::ProcessMode) process_mode=, queue_free : Nil queue_free, queued_free? : Bool queued_free?, ready : Nil ready, ready_called? : Bool ready_called?, remove(child : Node) : Nil remove, remove_child(child : Node) : Nil remove_child, remove_from_group(group : String) : Nil remove_from_group, remove_from_parent : Nil remove_from_parent, resized(width : Int32, height : Int32) : Nil resized, root : Node root, to_s(io : IO) : Nil to_s, tree_entered : Eagle::Emitter() tree_entered, tree_exited : Eagle::Emitter() tree_exited, visible=(visible : Bool) visible=, visible? : Bool visible?, z_index : Int32 z_index, z_index=(z_index : Int32) z_index=

Constructor methods inherited from class Eagle::Node

new(name : String = "") new

Constructor Detail

def self.box(w : Number, h : Number, offset : Vec2 = Vec2::ZERO) : CollisionShape2D #

A w by h box centered on offset.


def self.circle(radius : Number, offset : Vec2 = Vec2::ZERO) : CollisionShape2D #

A circle of radius, optionally offset from the body's origin.


def self.new(shape : Physics2D::Shape, name : String = "") #

Wraps a Physics2D::Shape.


def self.polygon(points : Array(Vec2), offset : Vec2 = Vec2::ZERO) : CollisionShape2D #

A convex polygon from local points.


Instance Method Detail

def disabled=(disabled : Bool) #

When true, the shape is ignored by collisions.


def disabled? : Bool #

When true, the shape is ignored by collisions.


def draw(g : Graphics) : Nil #

Draws nothing. The parent body draws shapes when its debug is on.


def enter_tree : Nil #

Attaches the shape to the parent body.


def exit_tree : Nil #

Detaches the shape from the parent body.


def shape : Physics2D::Shape #

The physics shape this node contributes.