Parallax2D

实验性: This node is meant to replace ParallaxBackground and ParallaxLayer. The implementation may change in the future.

继承: Node2D < CanvasItem < Node < Object

用于创建视差滚动背景的节点。

描述

Parallax2D 可用于创造视差效果。使用 scroll_scale 可以在相机移动时,以不同的相对速度移动,这样就在 2D 游戏中创造出了深度的错觉。如果需要手动滚动,也可以使用 ignore_camera_scroll 忽略 Camera2D 的位置。

注意:如果 ignore_camera_scrollfalse 或者修改了 screen_offset,那么该节点进入场景树后发生的任何位移都会被覆盖。

教程

属性

Vector2

autoscroll

Vector2(0, 0)

bool

follow_viewport

true

bool

ignore_camera_scroll

false

Vector2

limit_begin

Vector2(-1e+07, -1e+07)

Vector2

limit_end

Vector2(1e+07, 1e+07)

PhysicsInterpolationMode

physics_interpolation_mode

2 (overrides Node)

Vector2

repeat_size

Vector2(0, 0)

int

repeat_times

1

Vector2

screen_offset

Vector2(0, 0)

Vector2

scroll_offset

Vector2(0, 0)

Vector2

scroll_scale

Vector2(1, 1)


属性说明

Vector2 autoscroll = Vector2(0, 0) 🔗

偏移量自动滚动的速度,单位为像素每秒。


bool follow_viewport = true 🔗

  • void set_follow_viewport(value: bool)

  • bool get_follow_viewport()

如果为 true,则会根据当前相机的位置对 Parallax2D 进行偏移。如果 Parallax2D 所处的 CanvasLayer 与当前相机不同,也可以使用 CanvasLayer.follow_viewport_enabled 进行匹配。


bool ignore_camera_scroll = false 🔗

  • void set_ignore_camera_scroll(value: bool)

  • bool is_ignore_camera_scroll()

如果为 true,则 Parallax2D 的位置不受相机位置的影响。


Vector2 limit_begin = Vector2(-1e+07, -1e+07) 🔗

开始滚动的左上角限制。如果相机超出这个限制,Parallax2D 将停止滚动。必须低于 limit_end 减去视口大小才能正常工作。


Vector2 limit_end = Vector2(1e+07, 1e+07) 🔗

滚动结束的右下角限制。如果相机超出这个限制,Parallax2D 将停止滚动。必须高于 limit_begin 和视口大小的总和才能工作。


Vector2 repeat_size = Vector2(0, 0) 🔗

根据这个值将每个子节点的 Texture2D 进行重复和偏移。滚动时该节点的位置会发生循环,取值大于屏幕尺寸时就会造成背景无限滚动的错觉。某个轴如果为 0,则 Texture2D 不会重复。


int repeat_times = 1 🔗

  • void set_repeat_times(value: int)

  • int get_repeat_times()

覆盖纹理重复的次数。每个纹理副本都会相对于前一个往后挪 repeat_size。适用于相机远离的情况。


Vector2 screen_offset = Vector2(0, 0) 🔗

用于滚动 Parallax2D 的偏移量。ignore_camera_scrollfalse 时这个值会自动更新。


Vector2 scroll_offset = Vector2(0, 0) 🔗

Parallax2D 的偏移量。与 screen_offsetNode2D.position 类似,但是不会被覆盖。

注意:如果 repeat_size 大于 0,则这个值会发生循环。


Vector2 scroll_scale = Vector2(1, 1) 🔗

Parallax2D 最终偏移量的乘数。可用于模拟相对于相机的距离。

例如,1 的值表示滚动速度与相机相同。大于 1 的值表示滚动速度更快,使物体看起来更近。小于 1 的值表示滚动速度更慢,使物体看起来更远,而 0 的值表示物体完全停止。