跳转到内容

关键帧

类型标识:KEYFRAME

旋转角度(度),顺时针为正。类型 float,默认 0。

是否自动播放。类型 bool,默认 True。

是否参与碰撞检测。类型 bool,默认 False。

形状相对对象中心的偏移(bbox 不适用)。类型 float,默认 0。

polygon 形状的顶点列表。类型 list,默认 []。

碰撞形状:'bbox'、'rect'、'ellipse' 或 'polygon'。类型 str,默认 'rect'。

rect 与 ellipse 形状的尺寸。类型 float,默认为对象尺寸。

填充色、文字色或图像着色,取决于对象类型。类型 (r, g, b, a),默认 (255, 255, 255, 255)。

时间轴长度(秒);时间轴至少会延伸到最后一个关键帧。类型 float,默认 2.0。

作为对象本体绘制的图片,相对于工程目录;会被拉伸到 width/height 并用对象颜色着色。留空时绘制纯色方块。关键帧也可以携带自己的 image_path(见 keyframes 属性),时间轴会自行切换图片。类型 str,默认 ''。

时间轴快照列表,按时间排序。每一项是一个字典:time(秒)、easing('linear'、'ease_in'、'ease_out' 或 'ease_in_out')、x、y、scale_x、scale_y、angle、color 与 image_path('' 为纯色方块)。关键帧的缓动决定从它开始的那一段,图片也在该段开始时切换。类型 list,默认 []。

True:循环播放;False:播放一次后停在最后一个关键帧。类型 bool,默认 True。

层级面板中显示的名称。运行时只读。类型 str。

角速度阻尼。类型 float,默认 0。

弹性系数(0 为完全非弹性,1 为完全弹性)。类型 float,默认 0.2。

是否启用刚体物理。类型 bool,默认 False。

是否固定旋转(碰撞也不会让它转动)。类型 bool,默认 False。

摩擦系数。类型 float,默认 0.6。

重力缩放(0 表示不受重力影响)。类型 float,默认 1。

线速度阻尼。类型 float,默认 0。

质量。类型 float,默认 1。

physics_shape_height、physics_shape_width

Section titled “physics_shape_height、physics_shape_width”

刚体形状 rect、ellipse 的尺寸(0 表示使用对象自身尺寸)。类型 float,默认 0。

physics_shape_offset_x、physics_shape_offset_y

Section titled “physics_shape_offset_x、physics_shape_offset_y”

刚体形状相对对象中心的偏移。类型 float,默认 0。

刚体形状 polygon 的顶点列表。类型 list,默认 []。

刚体形状:'rect'、'ellipse' 或 'polygon'。类型 str,默认 'rect'。

刚体类型:'static'、'dynamic' 或 'kinematic'。类型 str,默认 'dynamic'。

变换基准点模式,可选值见 set_pivot()。类型 str,默认 'center'。

'custom' 基准点的坐标(对象自身的像素网格,原点在对象左上角)。类型 float,默认 0。

播放倍速(1 为实时,2 为两倍速)。类型 float,默认 1。

即 (x, y),赋值时会同步更新 x 和 y。类型 (int, int),默认 (20, 20)。

即 (scale_x, scale_y)。类型 (float, float),默认 (1, 1)。

缩放系数(1 为原始大小)。类型 float,默认 1。

已挂载脚本的路径(相对于工程目录)。类型 str,默认 ''。

即 (width, height)。类型 (int, int)。

类型标识;关键帧为 KEYFRAME。运行时只读。类型 str。

唯一标识,供 get_object_by_uuid() 使用。运行时只读。类型 str。

隐藏的对象不会绘制,也无法被点击。类型 bool,默认 True。

像素尺寸。类型 int,默认随对象类型而定。

相对于父对象的位置。类型 int,默认 20。

is_colliding_with_object 的别名。

  • other(object):另一个对象。

点(场景坐标)是否落在碰撞形状内。

  • x(int):点的 x(场景坐标)。
  • y(int):点的 y(场景坐标)。

形状是否与 pygame.Rect 或 (x, y, w, h) 元组重叠。

  • rect(pygame.Rect | (int, int, int, int)):矩形(场景坐标)。

对象中心到某个点的距离。

  • x(int):点的 x(场景坐标)。
  • y(int):点的 y(场景坐标)。

两个对象中心之间的距离。

  • other(object):另一个对象。

某时刻插值后的通道数值:包含 x、y、scale_x、scale_y、angle 与 color 的字典;没有关键帧时为 None。第一个关键帧之前 / 最后一个关键帧之后保持最近的快照。

  • time(float):距时间轴起点的秒数。

旋转角度(度)。

是否开启了自动播放。

对象中心(场景坐标)。

碰撞形状的中心(场景坐标)。

形状相对对象中心的偏移。

多边形顶点列表。

椭圆形状的半径(较短边的一半)。

与矩形的重叠区域,没有重叠时为 None。

  • x(int):矩形的 x(场景坐标)。
  • y(int):矩形的 y(场景坐标)。
  • width(int):矩形宽度。
  • height(int):矩形高度。

rect 与 ellipse 形状的尺寸。

当前碰撞形状。

填充、文字或着色颜色 (r, g, b, a)。

从对象指向某点的单位向量 (dx, dy)。

  • x(int):点的 x(场景坐标)。
  • y(int):点的 y(场景坐标)。

时间轴长度(秒)。

高度(像素)。

作为对象本体绘制的图片路径(相对于工程目录,'' 为纯色方块)。

时间轴快照的副本。

True 循环播放;False 播放一次后停在最后一个关键帧。

对象名称。

变换基准点模式(如 'center'、'top_left'、'custom')。

基准点解析到对象内容像素后的坐标 (x, y)。

当前播放倍速。

相对父对象的本地坐标 (x, y)。

对象的本地 pygame.Rect。

缩放系数 (scale_x, scale_y)。

x 方向缩放系数。

y 方向缩放系数。

尺寸 (宽, 高)(像素)。

播放时钟当前的位置(秒)。

时间轴长度(秒):取 duration 与最后一个关键帧时间中较大的那个。

对象类型标识。

对象 uuid。

读取 visible 状态。

宽度(像素)。

叠加父对象偏移后的场景坐标。

场景坐标下的 pygame.Rect。

本地坐标的 x 分量。

本地坐标的 y 分量。

隐藏对象,等同于设置 obj.visible = False。

自动播放是否开启。

两个对象都开启碰撞且形状重叠时为 True。

  • other(object):另一个对象。

is_colliding_with_rect(x, y, width, height)

Section titled “is_colliding_with_rect(x, y, width, height)”

形状是否与给定矩形重叠。

  • x(int):矩形的 x(场景坐标)。
  • y(int):矩形的 y(场景坐标)。
  • width(int):矩形宽度。
  • height(int):矩形高度。

该对象是否开启了碰撞检测。

对象是否被隐藏。

轻量检测:点落在对象的外接矩形内即为 True。

  • x(int):点的 x(场景坐标)。
  • y(int):点的 y(场景坐标)。

逐像素检测:只有落在非透明像素上才是 True。适合处理点击,不适合每帧调用。

  • x(int):点的 x(场景坐标)。
  • y(int):点的 y(场景坐标)。

同 is_visible()。

对象是否可见。

在当前位置上移动 (dx, dy) 像素。

  • dx(int):水平位移。
  • dy(int):垂直位移。

停在当前时间。

开始或继续播放。

把某时刻的时间轴数值临时应用到对象上而不播放(动画编辑器拖动播放头时使用)。应用成功返回 True。

  • time(float):距时间轴起点的秒数。

把形状字段重置为对象自身尺寸。

回到起点并重新播放。

设置旋转角度。

  • degrees(float):角度(度),顺时针为正。

设置自动播放开关。

  • auto_play(bool):True 播放,False 暂停。

设置对象中心(场景坐标)。

  • x(int):新的中心 x。
  • y(int):新的中心 y。

便捷方法:用两个半径设置椭圆。

  • radius_x(float):水平半径。
  • radius_y(float):垂直半径。

开启 / 关闭碰撞检测。关闭时所有 collides_with_* / is_colliding_* 都返回 False。

  • enabled(bool):True / False。

让形状相对对象中心偏移(会跟随缩放与旋转)。

  • x(float):水平偏移。
  • y(float):垂直偏移。

设置多边形顶点。

  • points(list):顶点列表,例如 [(0, 0), (50, 0), (25, 40)]。

设置 rect 与 ellipse 的尺寸。

  • width(int):形状宽度。
  • height(int):形状高度。

设置碰撞形状。

  • type(str):'bbox'、'rect'、'ellipse' 或 'polygon'。

设置颜色。

  • color((r, g, b, a)):新的颜色元组。

设置时间轴长度。

  • duration(float):秒。

设置高度。

  • h(int):新的高度(像素)。

设置作为对象本体绘制的图片。

  • image_path(str):相对工程目录的路径;'' 表示绘制纯色方块。

替换整条时间轴。传入的项会被清洗并按时间排序。

  • keyframes(list):快照字典列表(见 keyframes 属性)。

设置循环播放开关。

  • loop(bool):True 循环,False 只播放一次。

设置变换基准点模式。

  • pivot(str):'center'(默认)、'top_left'、'top_center'、'top_right'、'center_left'、'center_right'、'bottom_left'、'bottom_center'、'bottom_right' 或 'custom'。

把基准点设到对象自身像素网格的任意一点(同时把 pivot 设为 'custom')。

  • x(float):基准点 x(对象自身像素网格)。
  • y(float):基准点 y。

设置播放倍速(最小 0.01)。

  • playback_speed(float):倍速,1 为实时。

设置相对父对象的本地坐标。

  • x(int):新的 x,相对父对象(像素)。
  • y(int):新的 y,相对父对象(像素)。

设置两个缩放系数。

  • sx(float):x 方向缩放系数。
  • sy(float):y 方向缩放系数。

设置 x 方向缩放系数。

  • sx(float):x 方向缩放系数。

设置 y 方向缩放系数。

  • sy(float):y 方向缩放系数。

设置尺寸(像素)。

  • width(int):新的宽度。
  • height(int):新的高度。

跳到某个时间点(播放从那里继续)。开启循环时超出长度的部分会按时间轴长度取模。

  • time(float):距时间轴起点的秒数。

设置 visible 状态。

  • visible(bool):True 显示对象,False 隐藏对象。

设置宽度。

  • w(int):新的宽度(像素)。

设置场景坐标(已叠加父对象偏移)。

  • x(int):新的 x(场景坐标)。
  • y(int):新的 y(场景坐标)。

设置本地坐标的 x 分量。

  • x(int):新的 x,相对父对象。

设置本地坐标的 y 分量。

  • y(int):新的 y,相对父对象。

显示对象,等同于设置 obj.visible = True。

暂停并回到起点。

单次播放的动画到达最后一个关键帧时。

动画(重新)开始播放时。

在该对象上完成一次按下并释放。

开始与 other 重叠(双方都需要开启碰撞)。

  • other(object):另一个对象。

与 other 的重叠结束。

  • other(object):另一个对象。

场景被替换、对象被 studio.destroy_object() 移除,或游戏退出时执行。

双击该对象。

拖动过程中鼠标移动。

  • pos((int, int)):指针位置(场景坐标)。

拖动结束。

在对象上开始拖动。

鼠标移入对象。

鼠标移出对象。

在该对象上按下鼠标左键。

在该对象上按下的按键被释放。

右键点击该对象。

场景加载完成后执行一次。

每帧执行。

  • dt(float):距上一帧的秒数。

对象被显示或隐藏时。

  • visible(bool):显示为 True,隐藏为 False。

snapshot_from_object(obj, time=0.0, easing='linear')

Section titled “snapshot_from_object(obj, time=0.0, easing='linear')”

把对象当前的通道值打包成一帧关键帧快照。

  • obj(object):要快照的对象。
  • time(float):快照时间(秒)。
  • easing(str):从该帧开始的段所用的缓动曲线。

清洗并排序关键帧列表:排序、补全缺失的通道、钳制取值范围,返回新的列表(不会改动传入的数据)。

  • keyframes(list):关键帧字典列表。

把 0~1 的线性进度映射为指定缓动曲线的进度。

  • kind(str):'linear'、'ease_in'、'ease_out' 或 'ease_in_out'。
  • t(float):线性进度(0~1)。

默认缓动曲线('linear')。

全部缓动曲线名:('linear', 'ease_in', 'ease_out', 'ease_in_out')。

关键帧动画的通道列表:('x', 'y', 'scale_x', 'scale_y', 'angle', 'color', 'image_path')。