事件 (编辑器)

事件是 SMBX 38A 的一个重要组件,作用是执行游戏内的事件。可以执行诸如图层控制,变量操作,创建NPC,移动对象,创建效果等等。
因里面许多内容使用 TeaScript 也能达到同样效果,某种程度只需要一个脚本即可实现好几个事件才能实现的效果。
用法
打开菜单栏中的"View" - "Events",可以看到诸如右边窗口内容。
点击"Add"可以添加一个事件,点击"Dupe"可以复制当前事件所有内容并创建同事件。
特性
图层 (Layer)
该事件用于控制图层的显示隐藏效果。
变量 (Variable)
该事件用于控制当前关卡的变量,并执行对应表达式操作。
选择一个变量(只能为当前关卡的变量),在 "Variable Value" 填写对应的数学表达式,之后点击“Add”创建。(如果查看结果点击右边的“=”键。)
如果需要修改,需先选择当前的变量操作,点击“Delete”删除,并重新填好点击“Add”。
此功能和 TeaScript 里的表达式操作一样,在上述例子里,这个操作就相当于Timer = v(timer)+500*2。
创造 NPC (CreateNPC)
该事件用于在当前场景执行生成 NPC 的操作。在 TeaScript 系统里等同于call NCreate(id, x, y, sx, sy, advset, cdata)。
有以下参数:
- NPC ID Settings:决定生成NPC的ID。
- NPC Position Settings:决定生成NPC的X和Y位置,需要玩家在编辑区选择。
- Horizontal Speed of NPC:生成时NPC的水平速度(X)。
- Vertical Speed of NPC:生成时NPC的垂直速度(Y)。
- Advanced NPC Settings:决定生成这个NPC附带的
Advset值。
物件移动 (Movement)
该事件用于在游戏中对对应图层进行移动。在 TeaScript 系统里等同于call LMove(layername, px, py, type)。
有以下参数:
- Layer List:决定当前关卡的某个图层。
- Layer Movement Pattern:决定移动图层的方式。该参数有两个选项:“Move With Fixed Speed”和“Move Towards the Position”,分别代表“每帧以多少速度移动”和“基于初始坐标偏移位置”。
- Horizontal Movement:图层移动的水平速度(X)。
- Vertical Movement:图层移动的垂直速度(Y)。
效果生成器 (Effects)
该事件用于在游戏中产生一堆粒子&特效。在 TeaScript 系统里等同于call FXCreate(id, x, y, sx, sy, f, fs, fc, ng, advset)。
有以下参数:
- Effect ID Settings:决定生成Effect的ID。
- Effect Position Settings:决定生成Effect的X和Y位置,需要玩家在编辑区选择。
- Horizontal Speed of Effect:生成时Effect的水平速度(X)。
- Vertical Speed of Effect:生成时Effect的垂直速度(Y)。
- Frame Speed of Effect:生成时Effect的动画播放帧数(针对带有序列帧的Effect)。
- Effect Lifespan:生成时该Effect能持续多少时间(单位 帧)。
- Effect Gravity Settings:生成时该Effect是否会受到重力影响。
其他 (Others)
注:因该内容比较多,分为好几章节解释。
该事件控制其他内容,比如场景操作,玩家按键,自动开始等等内容。
图层 (Layers)
用于控制进行图层显示隐藏操作时是否产生烟雾效果。
No Smoke - 勾选则不会产生。
场景 (Sections)
用于控制场景内容。
- Section:决定需要操作的场景。
- Background:决定操作的场景的背景墙(BGP)。
- Music:决定操作的场景的背景音乐,可以选择自定义音乐(Custom Music)。有三个特殊值:
- [Don't Change]:不做任何改变。
- [Default]:设置为默认场景音乐(仅其他事件对该场景修改背景音乐有效)。
- [Custom]:设置为自定义音乐(直接选择 Custom Music后会自动设置为该值)。
- Level Boundry:决定操作的场景的边界位置。
- Autoscroll:操作的场景的滚动方式。有两个方式:
- Fixed Autoscroll:固定速度移动,该值是一个表达式。
- Custom Autoscroll:自定义移动(类似超级马力欧制作家2的关卡滚动设置)。
自动开始 (Autostart)
用于控制开始关卡时自动执行。
Mode包含以下模式:
- Not Auto Start(Start When called):不执行,除非有对应事件执行当前事件。
- Auto Start when game start:在开始关卡时自动执行。
- Auto Start When match all condiditon:在满足条件时自动执行(Cause值为True)
- Start When called And match all condition:当其他事件执行当前事件时满足对应条件执行。
效果 (Effects)
用于控制效果音或结束游戏。
- Sound:音效ID(事件内只能选择0~92,可以点击Play试听)
- End Game:结束当前关卡系列。
- None:不进行任何操作。
- Bowser Defeat:以击败SMB3 Bowser的形式结束(听到 SMB3 最终过关音效),显示Staff Roll。
- Finish Game:直接结束,并直接返回标题画面。
角色控制 (Character Controling)
用于系统控制玩家。等同于call keypress()
如果勾选"Enable Player Controls",则允许事件控制玩家的按键,不影响人类操作,以下按键对应玩家的操作按键(默认按键)。
| 名称 | 备注 |
|---|---|
| Drop | 将玩家存储在道具栏的道具丢弃 |
| Alt Run | |
| Run | |
| Jump | |
| Alt Jump | |
| Up | |
| Down | |
| Left | |
| Right | |
| Start | 执行“Start”操作 |
如果勾选"Lock Keyboard",则玩家不可操控,一切皆由系统接管操控。
计时器 (Game Timer)
用于控制关卡计时器。
默认每个关卡不会出现计时器,可以勾选"Enable"开启计时器功能。
Count:计时器数量。
Interval:计时器变化的帧数。
IsCountUp:是否为正向计数。
Visible:在游玩GUI显示当前关卡的计数器。
一般情况下,该功能完全可以由TeaScript接管,同时如果在脚本里清除了HUD,则及时勾选了Visible也不会出现,但系统默认继续进行计时。而针对计时器系统也有对应的类。
触发 (Triggers)
用于控制执行对应的事件等等。
- Special Event:执行特殊事件,等同于
call spevent(ID),可以在列表里直接查看对应的ID。 - Event:执行下一个事件,以及设置执行的延迟时间。
- Script:执行脚本(该事件执行的对应脚本可以运行
call sleep())。
消息版 (Message)
用于显示对话框,并展示里面的信息文本,等同于call showmsg()。
| 版本 | SMBX 1.3 | SMBX 38A | 月尘 | TheXTech 内置编辑器 |
|---|---|
| 通用 | |
| 功能 | 工具栏 |
| 工作区 | 关卡编辑器 | 世界编辑器 |
| 组件 | 图层 | 事件 |
| 编辑器属性区 | 关卡 | 世界 | 全局 |
| SMBX 38A | |
| 功能 | 工具栏 | 地形编辑器(资产窗口编辑器) | 自动衔接编辑器 | MarioShop |
| 工作区 | 关卡编辑器 | 世界编辑器 |
| 组件 | 图层 | 事件 | 变量 | 脚本 | 数据库 | 调试器 |
| 资产属性 | 方块 | 物体背景 | NPC | 场景地块 | 场景装饰物 | 路径 | 关卡 |
| 请注意,这里以下所有的条目均以 SMBX 1.4.5 Patch 31.1 为基底。 | |
|---|---|
| 基础 | 语法 | 函数 | 回调型函数 |
| 组件 | BGP (大背景) | 背景物件 | 位图 | 方块 | 角色 | 特效 | 流体 | 计时器 | NPC | 文本 | 传送点 | 系统变量 |
| 技术性 | 额外值 | BSet 函数 | Playnote 函数 | 特殊图层 | 未知函数 | 自动运行事件 | 编辑器函数 |
