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_scroll 为 false
或者修改了 screen_offset,那么该节点进入场景树后发生的任何位移都会被覆盖。
教程
属性
| ||
| ||
| ||
| ||
| ||
physics_interpolation_mode |
| |
| ||
| ||
| ||
| ||
|
属性说明
Vector2 autoscroll = Vector2(0, 0)
🔗
偏移量自动滚动的速度,单位为像素每秒。
如果为 true
,则会根据当前相机的位置对 Parallax2D 进行偏移。如果 Parallax2D 所处的 CanvasLayer 与当前相机不同,也可以使用 CanvasLayer.follow_viewport_enabled 进行匹配。
bool ignore_camera_scroll = false
🔗
如果为 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 不会重复。
覆盖纹理重复的次数。每个纹理副本都会相对于前一个往后挪 repeat_size。适用于相机远离的情况。
Vector2 screen_offset = Vector2(0, 0)
🔗
用于滚动 Parallax2D 的偏移量。ignore_camera_scroll 为 false
时这个值会自动更新。
Vector2 scroll_offset = Vector2(0, 0)
🔗
Parallax2D 的偏移量。与 screen_offset 和 Node2D.position 类似,但是不会被覆盖。
注意:如果 repeat_size 大于 0
,则这个值会发生循环。
Vector2 scroll_scale = Vector2(1, 1)
🔗
Parallax2D 最终偏移量的乘数。可用于模拟相对于相机的距离。
例如,1
的值表示滚动速度与相机相同。大于 1
的值表示滚动速度更快,使物体看起来更近。小于 1
的值表示滚动速度更慢,使物体看起来更远,而 0
的值表示物体完全停止。