事件系统

代码示例 事件

事件相关代码示例

监听等待完成事件

Stript.ts
// groupTriggerLineID 表示当前图像组所在的触发线
EventUtils.addEventListener(GameImage, GameImage.EVENT_PLAY_OVER, c = Callback.New((groupTriggerLineID: number) => {
    // 判定是不是我这条事件触发线
    if(groupTriggerLineID==trigger.id){
      // to do
    }
}, this));

代码示例:调用事件库

在事件中的脚本调事件库的事件:

Stript.ts
let cmdPage = Command.gameWorld.commonEventPages[公共事件编号];
if(cmdPage)trigger.commandScope.push({ cmdPage: cmdPage, index: 0, commonEventID: 公共事件编号, fragmentCommands: null })

在事件中调用独立公共事件:

Stript.ts
let cmdPage = Command.gameWorld.commonEventPages[公共事件编号];
let newFETrigger = new CommandTrigger(CommandTrigger.COMMAND_MAIN_TYPE_CALL_COMMON_EVENT, 公共事件编号, trigger.scene, trigger.trigger, true, trigger.executor); cmdPage.startTriggerEvent(newFETrigger, trigger.inputMessage);

其他地方调用独立公共事件:

如果是网络版则需要预先设置开启允许调用

Stript.ts
GameCommand.startCommonCommand(公共事件编号);

代码示例:场所移动

在事件中移动到指定的场景上:

Stript.ts
// 抛出系统事件
EventUtils.happen(triggerPlayer.sceneObject, Command.EVENT_SYSTEM_COMMAND_START, [2]);
// 移动场所
triggerPlayer.toScene(场景编号, 场景像素水平坐标, 场景像素垂直坐标);

代码示例:设置对象行为

在事件中追加对象的行为:

Stript.ts
// 让执行事件者执行行为
trigger.addBehavior(trigger.executor, behaviorData, loop, trigger.trigger, cover, 0, true);

代码示例:场景震动

Stript.ts
// 场景震动
GameFunction.shake(5,10);

代码示例:更改场景色调

Stript.ts
// 场景震动
GameFunction.tonal(150,0,0,0,20,1,1,1);

代码示例:镜头移动

镜头跳转到指定的场景位置(如像素坐标点500,500):

Stript.ts
// 先取消锁定目标,如果未锁定目标的话可以不调用此代码
Game.currentScene.camera.sceneObject = null;
// 再设置指定的位置
Game.currentScene.camera.viewPort.x = 500;
Game.currentScene.camera.viewPort.y = 500;

镜头绑定场景对象:

Stript.ts
// 镜头锁定当前场景中ID=1的场景对象(可优化先缓动到他坐标这里再锁定)
// 该绑定是实时跟随,如果想制作平滑跟随等效果可以不使用绑定镜头,而是自定义控制镜头坐标。
Game.currentScene.camera.sceneObject = Game.currentScene.sceneObjects[1];

代码示例:音频

代码示例:界面