//AI类型枚举 var taskEnumType = cc.Enum({ //游戏开始,即开场 GameStart: -1, //建造房子(住宅) BuildAHouse: -1, //增加 BuildFarmland: -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() { // return; //初始化任务 switch (this.taskEnum) { case taskEnumType.GameStart: this.onInitGameStartTask(); break; case taskEnumType.BuildAHouse: this.onInitBuildAHouse(); break; case taskEnumType.BuildFarmland: this.onInitBuildAFarmland(); 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 新手教学 初始化 console.log("初始化真的假的", BFirstLoadGame); if (!BFirstLoadGame) { //首次初始化 task.taskOnLoad(); //创建员工 this.manageWorker.getComponent('ManageWorker').onRecruit(); this.manageWorker.getComponent('ManageWorker').onRecruit(); this.onStart(); } else { task._init(); task.addSeneceTaskIcon(() => { task.taskOnLoadno(); //如果没有建设房子。初始化时候继续调用 if (task.TaskIconCountClick == -1) { task._setTaskCount(0); this.onInitGameStartTask(); } else { //直接吊起记录的任务 task.taskCallBack(); } }); } task.CreatorBtnHelp(); }, onInitGameStartTask() { //初始化的时候设置一个值 task.TaskIconCountClick = -1; //开始任务教程 dialogmanager.init(this._uiCamera, function () { dialogmanager.dialog1(); }.bind(this)); dialogmanager.setOnCloseDialog(function () { // task.CreatorBtnHelp(); // task.tasksstartBuildingview(); //建造农舍 task.showTiledTile(0, 0, 0, 23, 25); task.onTaskBuildAHouseMask(); }.bind(this)); }, //移动到工人位置 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(6, -650)); // 执行动作 this.MainCamera.runAction( cc.sequence( cc.callFunc(this._startUpdateMap.bind(this)), action, cc.callFunc(this._endUpdateMap.bind(this)) )); }, onInitBuildAHouse() { // task._setTaskCount(3); // task._setTaskIconCountClick(0); // task.addSeneceTaskIcon(); }, onInitBuildAFarmland() { task._setTaskCount(3); task._setTaskIconCountClick(0); task.addSeneceTaskIcon(); }, //移动到游客在农田购买的位置 onMovePayFarmland() { if (this.MainCamera == null) return; // 创建一个移动动作 var action = cc.moveTo(0.5, cc.v2(188, -884)); // 执行动作 this.MainCamera.runAction( cc.sequence( cc.callFunc(this._startUpdateMap.bind(this)), action, cc.callFunc(this._endUpdateMap.bind(this)) )); }, //初始化铺路 onInitPavedRoads() { task._setTaskIconCountClick(10); task.addSeneceTaskIcon(); }, //初始化招聘员工 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(); }, });