跳到主要内容

Curve

继承

Resource

简要描述

数学曲线。

描述

可以保存并重新用于其他对象的曲线。默认情况下,它在Y轴上的01之间,并且相对于0.5Y位置定位点。

成员

类型属性名默认值
intbake_resolution100
floatmax_value1.0
floatmin_value0.0

方法

返回值类型方法名称
intadd_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: int = 0, right_mode: int = 0)
voidbake()
voidclean_dupes()
voidclear_points()
intget_point_count() const
intget_point_left_mode(index: int) const
floatget_point_left_tangent(index: int) const
Vector2get_point_position(index: int) const
intget_point_right_mode(index: int) const
floatget_point_right_tangent(index: int) const
floatinterpolate(offset: float) const
floatinterpolate_baked(offset: float)
voidremove_point(index: int)
voidset_point_left_mode(index: int, mode: int)
voidset_point_left_tangent(index: int, tangent: float)
intset_point_offset(index: int, offset: float)
voidset_point_right_mode(index: int, mode: int)
voidset_point_right_tangent(index: int, tangent: float)
voidset_point_value(index: int, y: float)

信号

  • **range_changed**

更改max_valuemin_value时发出。


枚举

enum TangentMode:

  • **TANGENT_FREE = 0**

该点这一侧的切线是用户定义的。

  • **TANGENT_LINEAR = 1**

曲线将计算出该点这一侧的切线,即切向邻近点的中点处的坡度。

  • **TANGENT_MODE_COUNT = 2**

可用切线模式的总数。


常量

成员说明

  • int bake_resolution
Default100
setterset_bake_resolution(value)
getterget_bake_resolution
  • float max_value
Default1.0
setterset_max_value(value)
getterget_max_value
  • float min_value
Default0.0
setterset_min_value(value)
getterget_min_value

方法说明

  • add_point add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: int = 0, right_mode: int = 0)

在曲线上添加一个点。对于每一边,如果*_modeTANGENT_LINEAR,则*_tangent角度(以度为单位)将使用曲线到相邻点的中点的斜率。如果*_mode设置为TANGENT_FREE,则允许自定义分配给*_tangent角度。


  • bake bake()

重新计算曲线的烘焙点缓存。


  • clean_dupes clean_dupes()

删除比其曲线上的相邻点近CMP_EPSILON(0.00001)个单位的点。


  • clear_points clear_points()

从曲线中删除所有点。


  • get_point_count get_point_count() const

返回描述曲线的点数。


  • get_point_left_mode get_point_left_mode(index: int) const

返回index处的点的左侧TangentMode


  • get_point_left_tangent get_point_left_tangent(index: int) const

返回index处的点的左正切角(以度为单位)。


  • get_point_position get_point_position(index: int) const

返回index处的点的曲线坐标。


  • get_point_right_mode get_point_right_mode(index: int) const

返回index处的点的右侧TangentMode


  • get_point_right_tangent get_point_right_tangent(index: int) const

返回index处的点的右正切角(以度为单位)。


  • interpolate interpolate(offset: float) const

返回将在曲线的X位置offset处存在的点的Y值。


  • interpolate_baked interpolate_baked(offset: float)

使用烘焙的缓存返回沿曲线的X位置offset处将存在的点的Y值。如果尚未烘焙曲线的点,则将其烘焙。


  • remove_point remove_point(index: int)

从曲线中删除index处的点。


  • set_point_left_mode set_point_left_mode(index: int, mode: int)

index处的点的左侧TangentMode设置为mode


  • set_point_left_tangent set_point_left_tangent(index: int, tangent: float)

index处的点的左正切角设置为tangent


  • set_point_offset set_point_offset(index: int, offset: float)

设置0.5的偏移量。


  • set_point_right_mode set_point_right_mode(index: int, mode: int)

index处的点的右侧TangentMode设置为mode


  • set_point_right_tangent set_point_right_tangent(index: int, tangent: float)

index处的点的右切角设置为tangent


  • set_point_value set_point_value(index: int, y: float)

将垂直位置y分配给index处的点。