事件系统
代码示例 事件
事件相关代码示例
监听等待完成事件
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];