class
Eagle::Sprite2D
- Eagle::Sprite2D
- Eagle::Node2D
- Eagle::Node
- Reference
- Object
Overview
Draws a texture, or part of one, at the node's position. It is the workhorse of 2D games.
Sprites are centered on their position by default, so rotation and scale happen around
the middle. For sprite sheets, set #hframes/#vframes and pick a #frame, or use an
AnimatedSprite2D.
player = Sprite2D.new(Texture.new(Image.circle(32, Color::YELLOW)), v2(200, 150))
player.flip_h = true # face left
player.modulate = Color::RED # tint, including children
SceneTree.root.add(player)
coin = Sprite2D.load("res://coin.png", v2(300, 150))
coin.hframes = 6 # a 6-frame strip
coin.frame = 2
Direct Known Subclasses
Defined in:
eagle/nodes/sprite2d.crConstructors
-
.load(path : String, position : Vec2 = Vec2::ZERO, filter : GPU::Filter = Texture.default_filter) : Sprite2D
Creates a sprite from an image file.
-
.new(name : String = "", texture : Drawable | Nil = nil, position : Vec2 = Vec2::ZERO, centered : Bool = true)
Creates a sprite, optionally with a texture.
-
.new(texture : Drawable, position : Vec2 = Vec2::ZERO, name : String = "")
Creates a sprite showing texture at position.
Instance Method Summary
-
#centered=(centered : Bool)
Draw centered on the node's position (the default) or with the top-left there.
-
#centered? : Bool
Draw centered on the node's position (the default) or with the top-left there.
-
#color : Color
Tint for this sprite only.
-
#color=(color : Color)
Tint for this sprite only.
-
#contains_point?(global : Vec2) : Bool
True when a world-space point falls on the sprite's rect.
-
#current_region : Drawable | Nil
The region actually drawn this frame, after frame selection and flips.
-
#draw(g : Graphics) : Nil
Draws the current region.
-
#flip_h=(flip_h : Bool)
Mirror horizontally, for characters that turn around.
-
#flip_h? : Bool
Mirror horizontally, for characters that turn around.
-
#flip_v=(flip_v : Bool)
Mirror vertically.
-
#flip_v? : Bool
Mirror vertically.
-
#frame : Int32
Which cell of the sheet to show, counting left to right, top to bottom.
-
#frame=(frame : Int32)
Which cell of the sheet to show, counting left to right, top to bottom.
-
#global_rect : Rect
The drawn area in world space.
-
#height : Float32
Frame height in pixels.
-
#hframes : Int32
Number of columns when the texture is a sprite sheet.
-
#hframes=(hframes : Int32)
Number of columns when the texture is a sprite sheet.
-
#offset : Vec2
Extra offset in local space, for example to line up feet with the position.
-
#offset=(offset : Vec2)
Extra offset in local space, for example to line up feet with the position.
-
#rect : Rect
The drawn area in local space, accounting for
centeredand#offset. -
#size : Vec2
Size of one frame in pixels, before scale.
-
#texture : Drawable | Nil
The texture or region to draw.
-
#texture=(t : Drawable | Nil)
Sets the texture.
-
#texture=(path : String)
Sets the texture by loading a file.
-
#vframes : Int32
Number of rows when the texture is a sprite sheet.
-
#vframes=(vframes : Int32)
Number of rows when the texture is a sprite sheet.
-
#width : Float32
Frame width in pixels.
Instance methods inherited from class Eagle::Node2D
direction_to(other : Node2D) : Vec2
direction_to,
distance_to(other : Node2D) : Float32
distance_to,
down : Vec2
down,
forward : Vec2
forward,
global_position : Vec2
global_position,
global_position=(p : Vec2)
global_position=,
global_rotation : Float32
global_rotation,
global_scale : Vec2
global_scale,
global_transform : Transform2D
global_transform,
look_at(target : Vec2) : Nil
look_at,
modulate : Color
modulate,
modulate=(modulate : Color)
modulate=,
parent_2d : Node2D | Nil
parent_2d,
position : Vec2
position,
position=(p : Vec2)
position=,
right : Vec2
right,
rotate(rad : Number) : Nil
rotate,
rotation : Float32
rotation,
rotation=(rotation : Float32)
rotation=,
rotation_degrees : Float32
rotation_degrees,
rotation_degrees=(d : Number)
rotation_degrees=,
scale : Vec2
scale,
scale=(s : Vec2)scale=(s : Number) scale=, to_global(local : Vec2) : Vec2 to_global, to_local(global : Vec2) : Vec2 to_local, top_level=(top_level : Bool) top_level=, top_level? : Bool top_level?, transform : Transform2D transform, transform=(t : Transform2D) transform=, translate(x : Number, y : Number) : Nil
translate(v : Vec2) : Nil translate, x : Float32 x, x=(v : Number) x=, y : Float32 y, y=(v : Number) y=
Constructor methods inherited from class Eagle::Node2D
new(name : String = "", position : Eagle::Vec2 = Vec2::ZERO, rotation : Float32 = 0_f32, scale : Eagle::Vec2 = Vec2::ONE)
new
Instance methods inherited from class Eagle::Node
<<(child : Node) : self
<<,
[](path : String) : Node
[],
[]?(path : String) : Node | Nil
[]?,
add(child : Node) : Nodeadd(*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
Creates a sprite from an image file.
Creates a sprite, optionally with a texture.
Creates a sprite showing texture at position.
Instance Method Detail
Draw centered on the node's position (the default) or with the top-left there.
Draw centered on the node's position (the default) or with the top-left there.
True when a world-space point falls on the sprite's rect. Handy for clicking sprites.
card = Sprite2D.new(Texture.new(Image.new(60, 90, Color::WHITE)), v2(100, 100))
card.modulate = Color::YELLOW if card.contains_point?(Input.mouse)
The region actually drawn this frame, after frame selection and flips.
The drawn area in world space. When rotated, this is the axis-aligned box around it.
Extra offset in local space, for example to line up feet with the position.