//AI类型枚举 var taskEnumType = cc.Enum({ //游戏开始,即开场 GameStart: -1, //建造房子(住宅) BuildAHouse: -1, //增加一颗果树(环境) IncreaseFruitTrees: -1, //铺设道路 PavedRoads: -1, //招聘员工 RecruitStaff: -1, //分享 Share: -1 }); cc.Class({ extends: cc.Component, properties: { MainCamera: { default: null, type: cc.Node, serializable: true, }, //类型 taskEnum: { default: taskEnumType.GameStart, type: cc.Enum(taskEnumType), }, //工人管理节点 manageWorker: { default: null, type: cc.Node, serializable: true, }, }, onLoad() { // 开启碰撞检测系统,未开启时无法检测 // cc.director.getCollisionManager().enabled = true; GlobalD.ManageTask = this; this._uiCamera = cc.find("Canvas/UICamera"); this.managerControl = this._uiCamera.getComponent('ManagerControl'); //初始化人物对话 dialogmanager.InitDialgue(); }, onStart() { // onStartTask() }, /** * 调用任务 */ onStartTask(){ //初始化任务 switch (this.taskEnum) { case taskEnumType.GameStart: this.onInitGameStartTask(); break; case taskEnumType.BuildAHouse: this.onInitBuildAHouse(); break; case taskEnumType.IncreaseFruitTrees: this.onInitBuildAHouse(); break; case taskEnumType.PavedRoads: this.onInitPavedRoads(); break; case taskEnumType.RecruitStaff: this.onInitRecruitStaff(); break; case taskEnumType.Share: this.onInitShare(); break; // default: // break; } }, InitTask(BFirstLoadGame) { // return; // todo 新手教学 初始化 if (0 === BFirstLoadGame) { console.log("***首次初始化任务", BFirstLoadGame); //首次初始化 task.taskOnLoad(); //创建员工 // this.manageWorker.getComponent('ManageWorker').onRecruit(); // this.manageWorker.getComponent('ManageWorker').onRecruit(); this.onStartTask(); } else { console.log("***初始化任务", BFirstLoadGame); // this.onStartTask(); // console.log('task.TaskIconCountClick =====',task.TaskIconCountClick); task._init(); task.addSeneceTaskIcon(() => { task.taskOnLoadno(); //直接吊起记录的任务 task.taskCallBack(); }); } }, onInitGameStartTask() { //初始化的时候设置一个值 task.TaskIconCountClick = -1; task._setTaskCount(0); setTimeout(() => { task.taskCallBack(); }, 500); }, //移动到工人位置 onMoveCamera() { if (this.MainCamera == null) return; // let targetWorldPos = this.target.parent.convertToWorldSpaceAR(this.target.getPosition()); // let moveToSpacePos = this.node.parent.convertToNodeSpaceAR(targetWorldPos); // cc.log('Node移动的位置:', moveToSpacePos); // 创建一个移动动作 var action = cc.moveTo(0.5, cc.v2(0, 0)); // 执行动作 this.MainCamera.runAction( cc.sequence( cc.callFunc(this._startUpdateMap.bind(this)), action, cc.callFunc(this._endUpdateMap.bind(this)) )); }, onInitBuildAHouse() { task._setTaskCount(3); task.addSeneceTaskIcon(); }, //移动到游客在农田购买的位置 onMovePayFarmland() { if (this.MainCamera == null) return; // 创建一个移动动作 var action = cc.moveTo(0.5, cc.v2(0, -100)); // 执行动作 this.MainCamera.runAction( cc.sequence( cc.callFunc(this._startUpdateMap.bind(this)), action, cc.callFunc(this._endUpdateMap.bind(this)) )); }, //初始化铺路 onInitPavedRoads() { task._setTaskIconCountClick(10); task.addSeneceTaskIcon(); task.taskCallBack(); }, //初始化招聘员工 onInitRecruitStaff() { task._setTaskIconCountClick(1); task.addSeneceTaskIcon(); }, //初始化游戏分享 onInitShare() { task._setTaskIconCountClick(12); task.addSeneceTaskIcon(); }, /** * 初始相机到对应的tiled 位置 * @method onMoveToTiledTile * @param {int} x * @param {int} y */ onMoveToTiledTile(x, y) { if (this.MainCamera == null) return; let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(cc.v2(x, y)); // 创建一个移动动作 var action = cc.moveTo(0.5, endPos); // 执行动作 this.MainCamera.runAction( cc.sequence( cc.callFunc(this._startUpdateMap.bind(this)), action, cc.callFunc(this._endUpdateMap.bind(this)) )); }, _startUpdateMap() { this.updateCallback = function () { //更新地图边界外的物体 this.managerControl._deteItem(); } this.schedule(this.updateCallback, 0.3); }, _endUpdateMap() { this.unschedule(this.updateCallback); //更新地图边界外的物体 this.managerControl._deteItem(); }, });