共计 5791 个字符,预计需要花费 15 分钟才能阅读完成。
系统操作
显示
- 设置画布大小
- 设置页面内嵌时画布区域的大小(即不使用全屏模式)。如果使用全屏模式,这将有效地改变视口大小的项目属性,从而调整视口的大小。
- 设置全屏缩放
- 设置全屏质量项目属性。这允许在运行时调整质量设置。
- 设置像素取整
- 在运行时设置像素取整项目属性。
- 快照画布
- 截取当前显示的屏幕截图。通过指定 X、Y、宽度和高度参数(均以设备像素为单位),可以保存画布区域的一个子集(例如,保存裁剪后的图像)。平台信息表达式 CanvasDeviceWidth 和 CanvasDeviceHeight 给出画布在设备像素中的大小。默认情况下(将所有值保留为零)将保存整个画布区域。此操作在快照准备就绪时触发“画布快照”,并且可以使用 CanvasSnapshot 系统表达式访问生成的图像。然后可以将该图像加载到精灵或平铺背景中,发送到服务器,或使用浏览器对象在新标签页中打开。
通用
- 创建对象
- 在给定位置的图层上创建对象类型的新实例。如果选择了家族,将从家族中随机选择一个对象类型,并为其创建一个实例。勾选“创建层次结构”以在创建根对象时自动创建剩余的场景图层次结构及其连接。选择有效的模板名称,以便基于模板而不是任意实例创建新实例。
- 创建对象(按名称)
- 与“创建对象”相同,但允许使用对象类型名称的字符串来创建。这允许使用表达式动态选择要创建的对象类型。有时使用“选择最后创建的条件”有助于在子事件中选择结果实例。
- 重置持久化对象
- 在整个项目中,将所有使用 Persist 行为的对象重置为初始状态(就像布局尚未访问过一样)。这在重新开始时很有用。
- 设置碰撞单元格大小
- Construct 通过将所有对象分类到“单元格”中来优化碰撞检查。默认单元格大小是视口大小。更改碰撞单元格大小会调整碰撞性能、内存使用和移动对象的开销之间的权衡。通常默认值对于大多数项目都表现良好,但在大量对象测试小区域碰撞的项目中,如“子弹地狱”风格游戏,可能会受益于较小的碰撞单元格大小。使用性能测量来确定最佳大小。
- 设置组激活
- 设置事件组活动或非活动。在非活动组中的所有事件都不会运行,直到它再次被激活。事件组通过其名称标识。
- 排序 Z 顺序
- 根据实例变量对给定对象的实例进行 Z 顺序排序。这实际上从它们的 Z 顺序中移除了所有实例,对其进行排序,然后将排序后的序列插入留下的空白处。这意味着如果实例分布在一系列图层上,它们将按照相同的 Z 顺序位置排序,保持与其他图层上的其他实例相同的顺序。请注意,此操作比使用有序的 For each 和使用 Send to front/back 等操作快得多,因此对于大量实例的 Z 顺序排序,应首选此操作。
- 停止循环
- 停止当前运行的 Repeat、For 或 For each 循环。这些循环是系统条件。事件的其余动作和子事件仍将完成,但循环在那之后不会进一步运行。
全局和局部变量
- 添加至
- 减去自
- 设置值
- 更改数字或文本类型全局或局部变量存储的值。
- 重置
- 将项目中的单个全局变量重置为其初始值。
- 重置全局变量
- 将项目中的所有全局变量重置为其初始值。如果选中“重置静态”,则项目中的所有静态局部变量也将重置为其初始值。
- 设置布尔值
- 切换布尔值
- 设置或切换布尔类型全局或局部变量。
层
-
有关效果动作的更多信息,请参阅效果。
-
添加层
- 在运行时创建新层并将其插入到层树中(也称为动态层)。层名称是要用于添加的层的名称,必须与所有已添加的现有层不同,包括其他动态层。插入方式是另一个层的名称或索引,相对于该层插入新层。Where 指定相对于 Insert by 层的插入新层的位置;Above 和 Below 将其作为相邻于 Insert by 层的同级层添加,而 Add top/bottom sub-layer 将新层作为 Insert by 层的子层插入。当 Where 是 Add top/bottom sub-layer 时,Insert by 层可能留空,此时新层将作为根层级顶层或底层添加。
-
移动层
- 移除并在层树中的新位置重新插入一个层。这与添加层的工作方式类似,除了指定的层必须已经存在;否则 Insert by 和 Where 参数以相同的方式使用。
-
移除层
- 按名称或索引从层树中移除一个层。这也将删除被移除层的所有子层,并且该层或其任何子层上的所有对象都将被销毁。布局必须至少有一个层,因此不能移除最后一个顶级层。
-
移除所有动态层
-
使用添加层操作添加的所有层将被移除,只留下编辑器中添加的层。所有被移除层上的对象都将被销毁。这对于重置动态层的状态很有用。
代码注释
-
设置图层滚动
-
独立滚动一个图层,无论布局滚动到哪里。默认情况下,所有图层都跟随布局滚动位置。使用“设置图层滚动”操作后,图层将停止跟随布局滚动位置,并保持在提供的位置。“恢复图层滚动”操作将图层恢复到默认模式,即跟随布局滚动位置。
-
-
设置图层角度
- 按一定度数旋转整个图层。
-
设置图层背景颜色
- 设置图层的背景颜色。注意,如果图层是透明的,设置背景色不会改变外观,除非您还使图层不透明。
-
设置图层混合模式
- 设置图层的混合模式。有关可用混合模式的描述,请参见效果部分。
-
设置图层效果启用
- 启用或禁用当前布局上添加的图层的一个效果。此操作不能用于更改其他布局的图层。
-
设置图层效果参数
- 更改当前布局上添加的效果的一个参数值。此操作不能用于更改其他布局的图层。要更改的参数由其基于零的索引指定,即 0 更改第一个参数,1 更改第二个参数等。要设置颜色参数的值,请使用 rgb 系统表达式。
-
设置图层强制自己的纹理
- 在运行时更改图层的“强制自己的纹理”属性。有关更多信息,请参阅图层手册条目中的属性。
-
设置图层 HTML
- 设置图层是否充当 HTML 层。有关 HTML 层的更多信息,请参阅 HTML 层。
-
设置图层交互式
- 设置图层上的内容是否响应鼠标和触摸输入。
-
设置图层不透明度
- 设置整个图层的不透明度(或半透明)。
-
设置图层视差
- 设置图层的水平视差和垂直视差率。
-
设置图层缩放
- 考虑其缩放速率属性,设置整个图层的缩放(或缩放)。
-
设置图层缩放速率
- 设置图层的缩放速率属性,该属性影响其缩放速度(如果有)。
-
设置图层透明
- 设置图层的透明属性。如果是透明的,则忽略背景颜色。
-
设置图层可见
- 显示或隐藏整个图层。
注意,如果其父图层之一不可见,则无法使子图层可见。要使其出现,还必须使其所有父图层可见。
- 显示或隐藏整个图层。
-
设置图层 Z 高程
- 设置整个图层的 Z 高程。默认情况下,相机位于 Z = 100,向下看 Z = 0。默认 Z 高程为 0。增加它将使图层向上移动(朝向相机),减少它将使其向下移动(远离相机)。
图层顺序优先于 Z 高程。换句话说,Z 提升一个图层高于它上面的图层不会使它出现在那个图层之上。
- 设置整个图层的 Z 高程。默认情况下,相机位于 Z = 100,向下看 Z = 0。默认 Z 高程为 0。增加它将使图层向上移动(朝向相机),减少它将使其向下移动(远离相机)。
布局
-
转到布局
- 转到布局(按名称)
切换到项目中的另一个布局。请注意,全局变量保持其当前值 – 它们不会被重置。要重置它们,请使用系统操作重置全局变量。
- 转到布局(按名称)
-
转到下一个 / 上一个布局
- 切换到项目中的下一个或上一个布局。它们在项目栏中出现的顺序用于,顶部的布局首先出现,底部的布局最后出现。如果在第一个布局上,尝试转到上一个布局什么也不做,如果在最后一个布局上,尝试转到下一个布局什么也不做。请注意,全局变量保持其当前值 – 它们不会被重置。要重置它们,请使用系统操作重置全局变量。
-
重新创建初始对象
- 在布局的矩形区域内重新创建对象,如布局视图中所示。换句话说,这会恢复初始关卡设计的一部分。请注意,这不销毁任何现有对象,因此如果重复使用将在彼此之上创建多个对象。只创建给定类型的对象,或者可以传递一个系列并重新创建属于该系列的所有对象。还可以通过指定布局名称从不同布局中选择要创建的初始对象(将其留空将使用当前布局)。还可以选择通过输入图层名称或编号来选择特定图层;默认使用 - 1 将使用所有图层中的对象。创建的实例也可以可选地从其默认位置偏移,以便它们在不同的位置创建。与创建对象操作一样,所有创建的实例也被选中,以便后续操作可以进一步更改它们。在创建根对象时勾选创建层次结构以自动创建其余场景图层次结构以及连接到位。
-
重启布局
- 重启当前布局。请注意,与转到布局不同,此操作将所有事件组重置为其初始激活状态。全局变量保持其当前值 – 它们不会被重置。要重置它们,请使用系统操作重置全局变量。
-
设置布局角度
- 按一定度数旋转整个布局。这将旋转布局中的所有图层。
-
设置布局效果启用
- 启用或禁用当前布局上添加的一个效果。此操作不能用于更改其他布局。
-
设置布局效果参数
- 更改当前布局上添加的效果的一个参数值。此操作不能用于更改其他布局。要更改的参数由其基于零的索引指定,即 0 更改第一个参数,1 更改第二个参数等。要设置颜色参数的值,请使用 rgb 系统表达式。
-
设置布局投影
- 更改布局是使用透视投影还是正交投影。有关布局属性中的投影属性的更多信息,请参见。
-
设置布局比例
- 设置整个布局的比例(或缩放)。这将按其缩放速率属性缩放布局中的所有图层。
-
设置布局消失点
- 使用范围 0 -100 的百分比更改此布局的视口中消失点的位置。这影响了 3D 特征(如 Z 高程和 3D 形状对象)的视角。有关消失点布局属性的更多信息,请参阅。
代码注释
内存管理
Construct 默认自动加载和释放内存,因此通常不需要担心项目中的内存管理。然而,对于非常大的项目,可能需要控制对象何时被加载到内存中以及何时从内存中释放。这些操作提供了对加载图像内存的控制。注意,spritesheet 会将不同的图像组合到同一个 spritesheet 上;如果 spritesheet 上的任何一个图像被加载,那么 spritesheet 将被加载到内存中,并且只有当 spritesheet 上没有图像被加载时才会被释放。
加载布局图像
- 按名称加载布局图像
- 将布局使用的所有图像加载到内存中。可以从列表中选择布局,也可以使用其名称的字符串来选择布局。
通常,Construct 已经将当前布局加载到内存中。由于此操作会导致两个布局的图像同时加载到内存中,可能会导致内存使用量激增,从而引发内存不足的错误。为了缓解这种情况,请仅在最小布局(例如加载屏幕)上使用它。
- 将布局使用的所有图像加载到内存中。可以从列表中选择布局,也可以使用其名称的字符串来选择布局。
加载对象图像
- 按名称加载对象图像
- 将对象使用的所有图像加载到内存中。可以通过对象选择器或其名称的字符串来选择对象。如果它已经被加载,则没有影响。
对象只能作为整体加载。加载 Sprite 将加载其所有动画的所有动画帧。避免使用具有大量动画帧的对象,因为这会强制 Construct 加载它们。考虑使用多个 Sprite,并使用 Families 保持事件简单。
- 将对象使用的所有图像加载到内存中。可以通过对象选择器或其名称的字符串来选择对象。如果它已经被加载,则没有影响。
卸载对象图像
- 按名称卸载对象图像
- 从内存中卸载对象使用的所有图像。可以通过对象选择器或其名称的字符串来选择对象。如果它尚未加载,则没有影响。如果仍有对象实例在使用中(即对象的实例计数大于 0),则没有影响,因为图像仍在使用中且无法释放。
请注意,销毁对象并不会立即释放它们,直到下一个顶级事件结束。这意味着同时销毁对象的所有实例并卸载其图像不会起作用。使用等待操作以确保在卸载内存之前对象的实例已完全销毁。
- 从内存中卸载对象使用的所有图像。可以通过对象选择器或其名称的字符串来选择对象。如果它尚未加载,则没有影响。如果仍有对象实例在使用中(即对象的实例计数大于 0),则没有影响,因为图像仍在使用中且无法释放。
卸载未使用的图像
- 自动卸载已加载图像但当前已销毁所有实例(因此实例计数为 0)的任何对象的图像。
- 如果一个对象只是暂时未使用,例如当前没有实例但稍后将创建的爆炸,则此操作将卸载它,并在下次创建时强制 Construct 即时加载。这是低效的,可能会使项目卡顿。当您知道当前未使用的任何对象肯定不会再次创建时,小心使用此操作。
保存和加载
- 加载
- 从保存槽加载游戏状态。完成后,触发“加载完成”或“加载失败”(如果保存槽之前未保存)。有关更多信息,请参阅如何制作保存游戏。
- 从 JSON 加载
- 从先前通过 SaveStateJSON 系统表达式返回的 JSON 数据字符串加载游戏状态。有关更多信息,请参阅如何制作保存游戏。
- 保存
- 将游戏状态保存到保存槽。完成后,触发“保存完成”。有关更多信息,请参阅如何制作保存游戏。
滚动
-
要滚动,布局的大小必须大于视口的大小,或者必须启用布局的无界滚动属性。否则,没有滚动的地方,滚动将无效。
-
滚动到对象
-
将视图居中到给定对象。这会滚动所有图层,同时考虑它们的视差属性。
-
滚动到位置
-
滚动到 X
-
滚动到 Y
-
设置 X 和 Y 位置以将视图居中。这会滚动所有图层,同时考虑它们的视差属性。
时间
- 设置对象时间比例
- 恢复对象时间比例
更改特定对象的时间流逝速率。这会影响对象的行为和它自己的 dt 表达式。恢复对象的时间比例会将其返回到项目其余部分使用的时间比例。有关更多信息,请参阅关于 Delta 时间和帧率独立性的教程。
- 恢复对象时间比例
- 设置帧率模式
- 在运行时更改项目的帧率模式属性。有关详细信息,请参阅相应的项目属性。
- 设置最小 / 最大 delta 时间
- 设置 delta 时间(dt)测量的限制。如果真实世界的 delta 时间增加到最大 delta 时间以上,它就会停止增加 Construct 使用的测量,对应于帧率下降导致项目以慢动作运行。相反,如果真实世界的 delta 时间减少到最小 delta 时间以下,它就会停止减少 Construct 使用的测量,对应于帧率增加导致项目以快进模式运行。默认值是最小 delta 时间为 0(意味着项目永远不会进入快进模式)和最大 delta 时间为 1 / 30(对应于 30 FPS 的帧率),这意味着当帧率下降到 30 FPS 以下时,项目开始以慢动作运行。进入快进模式对于“追赶时间”模式很有用,而低帧率时的慢动作对于防止对象每帧移动过远从而导致跳过碰撞和不稳定的游戏性很有用。
注意帧率与 delta 时间之间的反向关系:帧率增加会导致 delta 时间减少,帧率减少会导致 delta 时间增加。
- 设置 delta 时间(dt)测量的限制。如果真实世界的 delta 时间增加到最大 delta 时间以上,它就会停止增加 Construct 使用的测量,对应于帧率下降导致项目以慢动作运行。相反,如果真实世界的 delta 时间减少到最小 delta 时间以下,它就会停止减少 Construct 使用的测量,对应于帧率增加导致项目以快进模式运行。默认值是最小 delta 时间为 0(意味着项目永远不会进入快进模式)和最大 delta 时间为 1 / 30(对应于 30 FPS 的帧率),这意味着当帧率下降到 30 FPS 以下时,项目开始以慢动作运行。进入快进模式对于“追赶时间”模式很有用,而低帧率时的慢动作对于防止对象每帧移动过远从而导致跳过碰撞和不稳定的游戏性很有用。
- 设置时间比例
- 更改项目中时间的流逝速率。对于慢动作或暂停效果很有用。有关更多信息,请参阅关于 Delta 时间和帧率独立性的教程。
信号
使用给定的标签恢复任何使用“等待信号”操作暂停的事件。
- 等待
- 等待一定秒数后继续执行下一个操作或子事件。与此同时,其他事件继续运行。
注意,这不会停止循环。其余事件继续运行,包括剩余的循环迭代。
- 等待一定秒数后继续执行下一个操作或子事件。与此同时,其他事件继续运行。
- 等待以前的动作完成
- 等待直到任何以前的动作已完成后才继续执行下一个操作或子事件。与此同时,其他事件继续运行。这只适用于异步操作,这些操作显示有特殊图标。通常,这类操作需要一段时间才能完成,并在操作完成时运行一个触发器,如“完成时”。然而,使用“等待以前的动作完成”通常更方便,因为它允许您将所有这些保留在同一个事件块中。
如果在此操作之前的 JavaScript 代码使用了 await 关键字,则它还将等待 JavaScript 代码块完成。请参阅在事件表中使用 ’Await’ 的脚本部分。
- 等待直到任何以前的动作已完成后才继续执行下一个操作或子事件。与此同时,其他事件继续运行。这只适用于异步操作,这些操作显示有特殊图标。通常,这类操作需要一段时间才能完成,并在操作完成时运行一个触发器,如“完成时”。然而,使用“等待以前的动作完成”通常更方便,因为它允许您将所有这些保留在同一个事件块中。
- 等待信号
- 无限期等待,直到使用相同标签的“信号”操作。与此同时,其他事件继续运行。