Godot Engine 学习笔记 Camera2D

Camera2D

  • Camera2D
    • 简要说明
    • 成员函数
    • 成员变量
    • 枚举
    • 说明
    • 成员函数说明
    • 使用

Camera2D

以下为我对于官方文档的翻译以及使用情况,3.0版本的文档
Camera2D官方文档
继承: Node2D < CanvasItem < Node < Object
类型: Core

简要说明

2D场景的摄像机节点。

成员函数

返回类型 函数
void align ( )
void clear_current ( )
void force_update_scroll ( )
Vector2 get_camera_position ( ) const
Vector2 get_camera_screen_center ( ) const
void make_current ( )
void reset_smoothing ( )

成员变量

  • AnchorMode anchor_mode - Camera2D 的锚点。见 ANCHOR_MODE_* 常数。
  • bool current - 如果为 true 摄像机是当前场景的活动摄像机。 只有一台摄像机可以是当前摄像机,因此设置不同的摄像机 current 将禁用此摄像机的 current
  • Node custom_viewport - 附加到的自定义 Viewport 节点 Camera2D 。如果为 null 或不是 Viewport ,则使用默认视口。
  • float drag_margin_bottom - 拖动摄像机所需的下边距。 值为 1 使摄像机仅在到达屏幕边缘时移动。
  • bool drag_margin_h_enabled - 如果为 true 摄像机仅在到达水平拖动边距时移动。如果为 false 摄像机无论边距如何都会水平移动。默认值: true
  • float drag_margin_left - 拖动相机所需的左边距。值为 1 使摄像机仅在到达屏幕边缘时移动。
  • float drag_margin_right - 拖动相机所需的右边距。值为 1 使摄像机仅在到达屏幕边缘时移动。
  • float drag_margin_top - 拖动相机所需的上边距。值为 1 使摄像机仅在到达屏幕边缘时移动。
  • bool drag_margin_v_enabled - 如果为 true 摄像机仅在到达垂直拖动边距时移动。如果为 false 摄像机无论边距如何都会垂直移动。默认值: true
  • bool editor_draw_drag_margin - 如果为 true 在编辑器中显示出摄像机的拖动边距矩形。默认值:false
  • bool editor_draw_limits - 如果为 true 在编辑器中显示出摄像机的限制矩形。默认值:false
  • bool editor_draw_screen - 如果为 true 在编辑器中显示出摄像机的屏幕矩形。默认值:true
  • int limit_bottom - 以像素为单位的底部滚动限制。达到此值时,摄像机会停止移动。
  • int limit_left - 以像素为单位的左滚动限制。达到此值时,摄像机会停止移动。
  • int limit_right - 以像素为单位的右滚动限制。达到此值时,摄像机会停止移动。
  • bool limit_smoothed - 如果为 true 摄像机在达到限制时平稳停止。默认值:false
  • int limit_top - 以像素为单位的顶部滚动限制。达到此值时,摄像机会停止移动。
  • Vector2 offset - 摄像机的偏移量,适用于环视或摄像机抖动动画。
  • float offset_h - 摄像机相对于拖动边距的水平偏移。默认值:0
  • float offset_v - 摄像机相对于拖动边距的垂直偏移。默认值:0
  • bool rotating - 如果为 true 相机随目标一起旋转。默认值:false
  • bool smoothing_enabled - 如果为 true 摄像机以 smoothing_speed 的速度平滑地移向目标。默认值:false
  • float smoothing_speed - 当 smoothing_enabled 为 true 时,摄像机平滑效果为像素每秒的速度。
  • Vector2 zoom - 摄像机相对于视口的缩放。 值大于 Vector2(1, 1) 缩小反之小于则放大。 举个例子,2倍放大用 Vector2(0.5, 0.5) ,4倍缩小用 Vector2(4, 4)

枚举

enum AnchorMode

  • ANCHOR_MODE_FIXED_TOP_LEFT = 0 — 摄像机的位置是固定的,因此左上角始终位于原点。
  • ANCHOR_MODE_DRAG_CENTER = 1 — 摄像机的位置考虑了垂直/水平偏移和屏幕尺寸。

说明

2D场景的摄像机节点。它强制屏幕(当前图层)在此节点后滚动。这使得编程可滚动场景比手动更改基于 CanvasItem 的节点的位置更容易(也更快)。

此节点旨在成为快速进行操作的简单帮助程序,并且可能常出现需要更多功能来改变摄像机的工作方式的情况。要创建自己的自定义摄像机节点,只需从 Node2D 继承并通过在 Viewport 中调用 get_viewport().set_canvas_transform(m) 来更改画布的变换。

成员函数说明

  • void align ( )

将摄像机与跟踪节点对齐

  • void clear_current ( )

从原型 Viewport 的内部中当前分配的摄像机中删除所有 Camera2D

  • void force_update_scroll ( )

强制摄像机立即更新滚动。

  • Vector2 get_camera_position ( ) const

返回摄像机位置。

  • Vector2 get_camera_screen_center ( ) const

返回 Camera2D 摄像机相对于原点的屏幕中心的位置。

  • void make_current ( )

使其成为场景的当前2D摄像机(视口和图层),以防场景中有许多摄像机。

  • void reset_smoothing ( )

将摄像机的位置立即设置为当前的平滑目标。
如果禁用平滑,则无效。

使用

将 Camera2D 节点置于想要跟随父节点下。如下图。
Godot Engine 学习笔记 Camera2D_第1张图片
在这里插入图片描述
这样在场景运行中画面会跟随 Ball 运动。
Godot Engine 学习笔记 Camera2D_第2张图片
Camera2D 属性中的 current 要选上摄像机才会启用。如果有多个 Camera2D 节点,那么启用其中一个 Camera2D 将关闭其他的。
Zoom 为缩放,当它值越小场景中的 Camera2D 的边框就越小,但是运行后显示的内容却是放大了。场景运行显示的画面为 Camera2D 框中的画面。

你可能感兴趣的:(Godot,Engine)