事件 (编辑器)

事件是SMBX的一个重要组件,作用是执行游戏内的事件。可以执行诸如图层控制,变量操作,创建NPC,移动对象,创建效果等等。
用法
打开菜单栏中的"View" - "Events",可以看到诸如右边窗口内容。
点击"Add"可以添加一个事件,点击"Dupe"可以复制当前事件所有内容并创建同事件。
特性
Layer
该事件用于控制图层的显示隐藏效果。
Variable
该事件用于控制当前关卡的变量,并执行对应表达式操作。
选择一个变量(只能为当前关卡的变量),在Variable Value填写对应的数学表达式,之后点击“Add”创建。
如果需要修改,需先选择当前的变量操作,点击“Delete”删除,并重新填好点击“Add”。
此功能和TeaScript里的表达式操作一样,在上述例子里,这个操作就相当于Timer = v(timer)+500*2
。
CreateNPC
该事件用于在当前场景执行生成NPC的操作。在TeaScript系统里等同于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系统里等同于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系统里等同于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.4.5 Patch 31.1 为基底。 | |
---|---|
版本 | SMBX 1.3 | 月尘 |
功能 | 工具栏 | 地形编辑器(资产窗口编辑器) | 自动衔接编辑器 | MarioShop |
View 组件 | 图层 | 事件 | 变量 | 脚本 | 数据库 | 调试器 |
编辑器属性区 | 关卡 | 世界 | 全局 |
资产属性 | Block (游戏对象属性) | Background | NPC | Tile | Scenery | Path | Level |