Sprite2D

继承: Node2D < CanvasItem < Node < Object

通用精灵节点。

描述

显示 2D 纹理的节点。显示的纹理可以是较大图集纹理中的某个区域,也可以是精灵表动画中的某一帧。

教程

属性

bool

centered

true

bool

flip_h

false

bool

flip_v

false

int

frame

0

Vector2i

frame_coords

Vector2i(0, 0)

int

hframes

1

Vector2

offset

Vector2(0, 0)

bool

region_enabled

false

bool

region_filter_clip_enabled

false

Rect2

region_rect

Rect2(0, 0, 0, 0)

Texture2D

texture

int

vframes

1

方法

Rect2

get_rect ( ) const

bool

is_pixel_opaque ( Vector2 pos ) const


信号

frame_changed ( )

frame 更改时发出。


texture_changed ( )

texture 更改时发出。


属性说明

bool centered = true

  • void set_centered ( bool value )

  • bool is_centered ( )

如果为 true,纹理居中。


bool flip_h = false

  • void set_flip_h ( bool value )

  • bool is_flipped_h ( )

如果为 true,纹理将被水平翻转。


bool flip_v = false

  • void set_flip_v ( bool value )

  • bool is_flipped_v ( )

如果为 true,纹理将被垂直翻转。


int frame = 0

  • void set_frame ( int value )

  • int get_frame ( )

当前显示的精灵表中的帧。vframeshframes 必须大于 1。


Vector2i frame_coords = Vector2i(0, 0)

显示的帧在精灵表中的坐标。这是 frame 属性的别名。vframeshframes 必须大于 1。


int hframes = 1

  • void set_hframes ( int value )

  • int get_hframes ( )

精灵表中的列数。


Vector2 offset = Vector2(0, 0)

纹理的绘图偏移量。


bool region_enabled = false

  • void set_region_enabled ( bool value )

  • bool is_region_enabled ( )

如果为 true,则从较大的图集纹理中剪切纹理。见 region_rect


bool region_filter_clip_enabled = false

  • void set_region_filter_clip_enabled ( bool value )

  • bool is_region_filter_clip_enabled ( )

如果为 true,则最外侧的像素会变得模糊。region_enabled 必须为 true


Rect2 region_rect = Rect2(0, 0, 0, 0)

  • void set_region_rect ( Rect2 value )

  • Rect2 get_region_rect ( )

要显示的图集纹理区域。region_enabled 必须是 true


Texture2D texture

要绘制的 Texture2D 对象。


int vframes = 1

  • void set_vframes ( int value )

  • int get_vframes ( )

精灵表中的行数。


方法说明

Rect2 get_rect ( ) const

返回代表该 Sprite2D 边界的 Rect2,使用局部坐标。可用于检测该 Sprite2D 是否被点击。

示例:

GDScriptC#

  1. func _input(event):
  2. if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
  3. if get_rect().has_point(to_local(event.position)):
  4. print("我点!")
  1. public override void _Input(InputEvent @event)
  2. {
  3. if (@event is InputEventMouseButton inputEventMouse)
  4. {
  5. if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left)
  6. {
  7. if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
  8. {
  9. GD.Print("我点!");
  10. }
  11. }
  12. }
  13. }

bool is_pixel_opaque ( Vector2 pos ) const

如果给定位置的像素不透明,则返回 true,其他情况下返回 false

注意:如果精灵的纹理为 null 或者给定的位置无效,它也会返回 false

Previous Next


© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7.

Built with Sphinx using a theme provided by Read the Docs.