Tween
继承
简要描述
随时间平滑地对节点的属性进行动画处理。
描述
补间对于需要将数值属性插值到一系列值上的动画很有用。 名称 tween 来自 inweenweening ,这是一种动画技术,您可以在其中指定关键帧,然后计算机对出现在它们之间的帧进行插值。
Tween比AnimationPlayer更适合用于您事先不知道最终值的动画。 例如,最好使用Tween节点对动态选择的相机缩放值进行插值; 使用AnimationPlayer节点很难做同样的事情。
这是一个简短的用法示例,该示例使2D节点在两个位置之间平滑移动:
var tween = get_node("Tween")
tween.interpolate_property($Node2D, "position",
Vector2(0, 0), Vector2(100, 100), 1,
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
许多方法都需要属性名称,例如上面的“ position”
您可以将鼠标悬停在检查器中的属性上,以找到正确的属性名称。 您还可以通过使用“ property:component”
(例如position:x
)直接提供属性的组件,该属性仅适用于该特定组件。
许多方法接受trans_type
和ease_type
。第一个接受TransitionType常量,并指代处理动画定时的方式(有关某些示例,请参见http://easings.net/
)。 第二个参数接受EaseType常量,并控制将 trans_type
应用于插值的位置(在开头,结尾或同时在这两者中)。 如果您不知道选择哪种过渡和缓动,则可以使用EASE_IN_OUT尝试使用不同的TransitionType常量,并使用看起来最合适的常量。
成员
类型 | 属性名 | 默认值 |
---|---|---|
int | playback_process_mode | 1 |
float | playback_speed | 1.0 |
bool | repeat | false |
方法
返回值类型 | 方法名称 |
---|---|
bool | follow_method(#method-follow_method)(object: Object, method: String, initial_val: Variant, target: Object, target_method: String, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
bool | follow_property(object: Object, property: NodePath, initial_val: Variant, target: Object, target_property: NodePath, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
float | get_runtime() const |
bool | interpolate_callback(object: Object, duration: float, callback: String, arg1: Variant = null, arg2: Variant = null, arg3: Variant = null, arg4: Variant = null, arg5: Variant = null) |
bool | interpolate_deferred_callback(object: Object, duration: float, callback: String, arg1: Variant = null, arg2: Variant = null, arg3: Variant = null, arg4: Variant = null, arg5: Variant = null) |
bool | interpolate_method(#method-interpolate_method)(object: Object, method: String, initial_val: Variant, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
bool | interpolate_property(object: Object, property: NodePath, initial_val: Variant, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
bool | is_active() const |
bool | remove(object: Object, key: String = "") |
bool | remove_all() |
bool | reset(object: Object, key: String = "") |
bool | reset_all() |
bool | resume(object: Object, key: String = "") |
bool | resume_all() |
bool | seek(time: float) |
void | set_active(active: bool) |
bool | start() |
bool | stop(object: Object, key: String = "") |
bool | stop_all() |
bool | targeting_method(#method-targeting_method)(object: Object, method: String, initial: Object, initial_method: String, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
bool | targeting_property(object: Object, property: NodePath, initial: Object, initial_val: NodePath, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0) |
float | tell() const |
信号
- **tween_all_completed**
在补间中的所有进程结束时发出。
- **tween_completed**
补间结束时发出。
- **tween_started**
补间开始时发出。
- **tween_step**
在动画的每个步骤发出。
枚举
enum TweenProcessMode:
- **TWEEN_PROCESS_PHYSICS = 0**
补间使用_physics_process
回调进行更新。
- **TWEEN_PROCESS_IDLE = 1**
补间将通过_process
回调进行更新。
enum TransitionType:
- **TRANS_LINEAR = 0**
动画进行线性插值。
- **TRANS_SINE = 1**
动画是利用正弦函数插值。
- **TRANS_QUINT = 2**
动画使用五次方(5的幂)函数进行插值。
- **TRANS_QUART = 3**
动画通过四次(至4的幂)函数进行插值。
- **TRANS_QUAD = 4**
动画通过二次函数(以2的幂)插值。
- **TRANS_EXPO = 5**
动画通过指数函数(以x的幂为单位)进行插值。
- **TRANS_ELASTIC = 6**
动画通过弹性插值,在边缘周围摆动。
- **TRANS_CUBIC = 7**
动画使用三次(至3的幂)函数进行插值。
- **TRANS_CIRC = 8**
动画通过使用平方根的函数进行插值。
- **TRANS_BOUNCE = 9**
通过在结尾处弹跳来插入动画。
- **TRANS_BACK = 10**
动画插补后退。
enum EaseType:
- **EASE_IN = 0**
插值开始缓慢,然后加速到终点。
- **EASE_OUT = 1**
插值开始快速,然后逐渐减慢。
- **EASE_IN_OUT = 2**
EASE_IN和EASE_OUT的组合。 插值在两端都是最慢的。
- **EASE_OUT_IN = 3**
EASE_IN和EASE_OUT的组合。 插值在两端都是最快的。
常量
成员说明
- int playback_process_mode
Default | 1 |
---|---|
setter | set_tween_process_mode(value) |
getter | get_tween_process_mode |
- float playback_speed
Default | 1.0 |
---|---|
setter | set_speed_scale(value) |
getter | get_speed_scale |
- bool repeat
Default | false |
---|---|
setter | set_repeat(value) |
getter | is_repeat |
方法说明
- follow_method follow_method(object: Object, method: String, initial_val: Variant, target: Object, target_method: String, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
遵循object
的method
,并从initial_val [/开始,将返回值应用于
target的
target_method`
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。 这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- follow_property follow_property(object: Object, property: NodePath, initial_val: Variant, target: Object, target_property: NodePath, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
遵循object
的property
,并从initial_val
开始,将其应用于target
的target_property
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。 这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- get_runtime get_runtime() const
返回所有补间结束所需的总时间。 如果您有两个补间,一个持续10秒,另一个持续20秒,它将返回20秒,因为到那时所有补间都将完成。
- interpolate_callback interpolate_callback(object: Object, duration: float, callback: String, arg1: Variant = null, arg2: Variant = null, arg3: Variant = null, arg4: Variant = null, arg5: Variant = null)
在duration
之后,调用object
的callback
。 arg1
-arg5
是要传递给回调的参数。
- interpolate_deferred_callback interpolate_deferred_callback(object: Object, duration: float, callback: String, arg1: Variant = null, arg2: Variant = null, arg3: Variant = null, arg4: Variant = null, arg5: Variant = null)
在主线程上的duration
之后,调用object
的callback
(类似于Object.call_deferred)。
- interpolate_method interpolate_method(object: Object, method: String, initial_val: Variant, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
从initial_val
到final_val
的object
的方法
动画持续持续时间
秒, 延迟
秒后。 用连续值调用方法。
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- interpolate_property interpolate_property(object: Object, property: NodePath, initial_val: Variant, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
从initial_val
到final_val
的对象
的属性
动画,持续时间为duration
秒,延迟
秒后。 将初始值设置为 null
将使用属性的当前值。
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- is_active is_active() const
如果当前正在运行任何补间,则返回true
。
注意:此方法不考虑补间结束。
- remove remove(object: Object, key: String = "")
给定其对象和属性/方法对,停止动画并删除补间。 默认情况下,除非指定key
,否则将删除所有补间。
- remove_all remove_all()
停止动画并删除所有补间。
- reset reset(object: Object, key: String = "")
在给定对象和属性/方法对的情况下,将补间重置为其初始值(给定的一个,而不是补间之前的一个)。 默认情况下,除非指定key
,否则将删除所有补间。
- reset_all reset_all()
将所有补间重置为其初始值(给定的初始值,而不是补间之前的初始值)。
- resume resume(object: Object, key: String = "")
给定对象和属性/方法对,继续为停止的补间设置动画。 默认情况下,所有补间将恢复,除非指定了key
。
- resume_all resume_all()
继续为所有停止的补间动画。
- seek seek(time: float)
将插值设置为以秒为单位的给定time
。
- set_active set_active(active: bool)
激活/禁用补间。 另请参见stop_all和resume_all。
- start start()
开始补间。 您可以在此之前和之后定义动画。
- stop stop(object: Object, key: String = "")
给定其对象和属性/方法对,停止补间。 默认情况下,除非指定key
,否则所有补间都将停止。
- stop_all stop_all()
停止为所有补间设置动画。
- targeting_method targeting_method(object: Object, method: String, initial: Object, initial_method: String, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
从initial_method
返回的值到final_val
的duration
秒内,将object
的方法
动画化 ,延迟
秒后。 通过使用连续的值调用方法来使方法具有动画效果。
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。 这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- targeting_property targeting_property(object: Object, property: NodePath, initial: Object, initial_val: NodePath, final_val: Variant, duration: float, trans_type: int = 0, ease_type: int = 2, delay: float = 0)
从initial
的initial_val
属性的当前值到final_val
的object
的属性
动画 ]持续duration
秒,然后延迟delay
秒。
将TransitionType用于trans_type
,将EaseType用于ease_type
参数。 这些值控制插值的时间和方向。 有关更多信息,请参见类描述。
- tell tell() const
返回补间的当前时间。