Sprite2D
Наследует: Node2D < CanvasItem < Node < Object
Универсальный узел спрайта.
Описание
Узел, отображающий 2D-текстуру. Отображаемая текстура может быть областью из более крупной текстуры атласа или кадром из анимации спрайт-листа.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
get_rect() const |
|
is_pixel_opaque(pos: Vector2) const |
Сигналы
frame_changed() 🔗
Выдается при изменении frame.
texture_changed() 🔗
Выдается при изменении texture.
Описания свойств
Если true, текстура центрирована.
Примечание: В играх с пиксельной эстетикой текстуры могут выглядеть деформированными при центрировании. Это вызвано их положением между пикселями. Чтобы предотвратить это, установите это свойство на false или рассмотрите возможность включения ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel и ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel.
Если true, текстура отражена по горизонтали.
Если true, текстура отражена по вертикали.
Текущий кадр для отображения из таблицы спрайтов. hframes или vframes должны быть больше 1. Это свойство автоматически корректируется, когда hframes или vframes изменяются, чтобы продолжать указывать на тот же визуальный кадр (тот же столбец и строку). Если это невозможно, это значение сбрасывается до 0.
Vector2i frame_coords = Vector2i(0, 0) 🔗
Координаты кадра для отображения из таблицы спрайтов. Это псевдоним для свойства frame. hframes или vframes должны быть больше 1.
Количество столбцов в таблице спрайтов. При изменении этого свойства frame корректируется так, чтобы сохранялась та же визуальная рамка (та же строка и столбец). Если это невозможно, frame сбрасывается до 0.
Vector2 offset = Vector2(0, 0) 🔗
Смещение отрисовки текстуры.
Примечание: При увеличении offset.y в Sprite2D спрайт перемещается вниз на экране (т. е. +Y — вниз).
Если true, текстура вырезается из более крупной текстуры атласа. См. region_rect.
Примечание: При использовании пользовательского Shader в Sprite2D встроенный шейдер UV будет ссылаться на всё пространство текстуры. Вместо этого используйте встроенный шейдер REGION_RECT для получения текущей видимой области, заданной в region_rect. Подробнее см. Шейдеры CanvasItem.
bool region_filter_clip_enabled = false 🔗
Если true, область за пределами region_rect обрезается, чтобы избежать просачивания окружающих пикселей текстуры. region_enabled должно быть true.
Rect2 region_rect = Rect2(0, 0, 0, 0) 🔗
Область текстуры атласа для отображения. region_enabled должен быть true.
Texture2D объект для рисования.
Количество строк в таблице спрайтов. При изменении этого свойства frame корректируется так, чтобы сохранялась та же визуальная рамка (та же строка и столбец). Если это невозможно, frame сбрасывается до 0.
Описания метода
Возвращает Rect2, представляющий границу Sprite2D в локальных координатах.
Пример: Определить, был ли нажат Sprite2D:
func _input(event):
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
if get_rect().has_point(to_local(event.position)):
print("Нажато!")
public override void _Input(InputEvent @event)
{
if (@event is InputEventMouseButton inputEventMouse)
{
if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left)
{
if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
{
GD.Print("Нажато!");
}
}
}
}
bool is_pixel_opaque(pos: Vector2) const 🔗
Returns true if the pixel at the given position is opaque, false otherwise. Also returns false if the given position is out of bounds or this sprite's texture is null. pos is in local coordinates.