事件 (编辑器)

来自SMBX 中文百科
Editor/Events
跳转到导航 跳转到搜索
SMBX 1.4.5 P31.1 事件窗口

事件是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()