2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 10:08:05 +02:00
<class name= "Sprite2D" inherits= "Node2D" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2019-06-22 01:04:47 +02:00
General-purpose sprite node.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2017-09-23 18:11:51 +02:00
A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2024-03-25 02:20:59 +01:00
<link title= "Instancing Demo" > https://godotengine.org/asset-library/asset/2716</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
2018-02-25 07:19:42 +01:00
<method name= "get_rect" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Rect2" />
2018-02-25 07:19:42 +01:00
<description >
2024-08-18 13:31:57 +02:00
Returns a [Rect2] representing the Sprite2D's boundary in local coordinates.
[b]Example:[/b] Detect if the Sprite2D was clicked:
2020-11-28 00:33:15 +01:00
[codeblocks]
[gdscript]
2019-05-26 15:51:27 +02:00
func _input(event):
2021-01-08 04:37:37 +01:00
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
2019-05-26 15:51:27 +02:00
if get_rect().has_point(to_local(event.position)):
print("A click!")
2020-11-28 00:33:15 +01:00
[/gdscript]
[csharp]
2023-01-31 18:21:09 +01:00
public override void _Input(InputEvent @event)
2020-11-28 00:33:15 +01:00
{
2023-01-31 18:21:09 +01:00
if (@event is InputEventMouseButton inputEventMouse)
2020-11-28 00:33:15 +01:00
{
2023-01-31 18:21:09 +01:00
if (inputEventMouse.Pressed & & inputEventMouse.ButtonIndex == MouseButton.Left)
2020-11-28 00:33:15 +01:00
{
if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
{
GD.Print("A click!");
}
}
}
}
[/csharp]
[/codeblocks]
2018-02-25 07:19:42 +01:00
</description>
</method>
2018-08-29 22:25:11 +02:00
<method name= "is_pixel_opaque" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "bool" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "pos" type= "Vector2" />
2018-08-29 22:25:11 +02:00
<description >
2024-02-20 13:37:44 +01:00
Returns [code]true[/code], if the pixel at the given position is opaque and [code]false[/code] in other case. The position is in local coordinates.
2019-06-22 01:04:47 +02:00
[b]Note:[/b] It also returns [code]false[/code], if the sprite's texture is [code]null[/code] or if the given position is invalid.
2018-08-29 22:25:11 +02:00
</description>
</method>
2017-09-12 22:42:36 +02:00
</methods>
<members >
2019-06-29 12:38:01 +02:00
<member name= "centered" type= "bool" setter= "set_centered" getter= "is_centered" default= "true" >
2019-06-29 15:24:23 +02:00
If [code]true[/code], texture is centered.
2024-02-17 18:59:22 +01:00
[b]Note:[/b] For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to [code]false[/code], or consider enabling [member ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel] and [member ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel].
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "flip_h" type= "bool" setter= "set_flip_h" getter= "is_flipped_h" default= "false" >
2019-06-29 15:24:23 +02:00
If [code]true[/code], texture is flipped horizontally.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "flip_v" type= "bool" setter= "set_flip_v" getter= "is_flipped_v" default= "false" >
2019-06-29 15:24:23 +02:00
If [code]true[/code], texture is flipped vertically.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "frame" type= "int" setter= "set_frame" getter= "get_frame" default= "0" >
2023-11-24 17:47:55 +01:00
Current frame to display from sprite sheet. [member hframes] or [member vframes] must be greater than 1. This property is automatically adjusted when [member hframes] or [member vframes] are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to [code]0[/code].
2017-09-12 22:42:36 +02:00
</member>
2019-09-24 19:45:03 +02:00
<member name= "frame_coords" type= "Vector2i" setter= "set_frame_coords" getter= "get_frame_coords" default= "Vector2i(0, 0)" >
2020-08-22 01:56:14 +02:00
Coordinates of the frame to display from sprite sheet. This is as an alias for the [member frame] property. [member hframes] or [member vframes] must be greater than 1.
2019-01-25 19:21:23 +01:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "hframes" type= "int" setter= "set_hframes" getter= "get_hframes" default= "1" >
2023-11-24 17:47:55 +01:00
The number of columns in the sprite sheet. When this property is changed, [member frame] is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, [member frame] is reset to [code]0[/code].
2017-09-12 22:42:36 +02:00
</member>
2019-09-24 19:45:03 +02:00
<member name= "offset" type= "Vector2" setter= "set_offset" getter= "get_offset" default= "Vector2(0, 0)" >
2017-09-23 18:11:51 +02:00
The texture's drawing offset.
2017-09-12 22:42:36 +02:00
</member>
2021-03-14 14:43:43 +01:00
<member name= "region_enabled" type= "bool" setter= "set_region_enabled" getter= "is_region_enabled" default= "false" >
2019-06-29 15:24:23 +02:00
If [code]true[/code], texture is cut from a larger atlas texture. See [member region_rect].
2017-09-12 22:42:36 +02:00
</member>
2021-03-14 14:43:43 +01:00
<member name= "region_filter_clip_enabled" type= "bool" setter= "set_region_filter_clip_enabled" getter= "is_region_filter_clip_enabled" default= "false" >
2024-09-29 01:02:06 +02:00
If [code]true[/code], the area outside of the [member region_rect] is clipped to avoid bleeding of the surrounding texture pixels. [member region_enabled] must be [code]true[/code].
2017-09-12 22:42:36 +02:00
</member>
2019-09-24 19:45:03 +02:00
<member name= "region_rect" type= "Rect2" setter= "set_region_rect" getter= "get_region_rect" default= "Rect2(0, 0, 0, 0)" >
2017-10-06 18:33:16 +02:00
The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
2017-09-12 22:42:36 +02:00
</member>
2020-02-12 09:59:06 +01:00
<member name= "texture" type= "Texture2D" setter= "set_texture" getter= "get_texture" >
[Texture2D] object to draw.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "vframes" type= "int" setter= "set_vframes" getter= "get_vframes" default= "1" >
2023-11-24 17:47:55 +01:00
The number of rows in the sprite sheet. When this property is changed, [member frame] is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, [member frame] is reset to [code]0[/code].
2017-09-12 22:42:36 +02:00
</member>
</members>
<signals >
<signal name= "frame_changed" >
<description >
2017-10-06 18:33:16 +02:00
Emitted when the [member frame] changes.
2017-09-12 22:42:36 +02:00
</description>
</signal>
<signal name= "texture_changed" >
<description >
2017-10-06 18:33:16 +02:00
Emitted when the [member texture] changes.
2017-09-12 22:42:36 +02:00
</description>
</signal>
</signals>
</class>