123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- // Learn TypeScript:
- // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
- // Learn Attribute:
- // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
- // Learn life-cycle callbacks:
- // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
- import EventName, { ItemName, PopName, SofaColor } from "../EventName/EventName";
- import { BusNodeData, BusType, ChangeCountDown, ChangeGraySitDownColor, ChangeMapInitOver, ChangeRoloInitOver, ChangeRoloQueues, ChangetableData, ChangetableDataBusType, ChangetableDataMen, MapData, MapDataBusTypes, MapDataBusTypes_ByYinDao, MapDataCountDown, MapDataCountDown_ByYinDao, MapDataGraySitDownColor, MapDataGraySitDownColor_ByYinDao, MapDataRoloQueues, MapDataRoloQueues_ByYinDao, MapData_ByYinDao, MapInitOver, MenPos, RoloInitOver, tableData } from "../GameLogic/DataConfig";
- import HTTPS, { NetPost } from "../Template/HTTPS";
- import LocalData, { WorkState } from "../Template/LocalData";
- import MyComponent from "../Template/MyComponent";
- import PopManger, { GameOver } from "./PopManger";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class GameLevel extends MyComponent {
- //当前游戏关卡
- static gameLevel: number = 1
- @property(cc.SpriteFrame)
- sp_on: cc.SpriteFrame = null
- @property(cc.SpriteFrame)
- sp_off: cc.SpriteFrame = null
- protected onEnable(): void {
- GameLevel.gameLevel = 1
- cc.systemEvent.emit(EventName.driveBus, 0)
- }
- onLoad(): void {
- super.onLoad();
- this.regEvent(EventName.NextCoustomGame, this.NextCoustomGame, this)
- this.regEvent(EventName.driveBusOver, this.driveBusOver, this)
- this.regEvent(EventName.driveBusMind, this.driveBusMind, this)
- this.setGameSlider()
- }
- //开车结束了
- driveBusOver() {
- //生成车门
- cc.systemEvent.emit(EventName.BronDoor)
- }
- //开车到一半了
- driveBusMind() {
- PopManger.getInstance().Pop(PopName.CurrentLevel)
- ChangeRoloInitOver(false)
- ChangeMapInitOver(false)
- //现在的关卡状态
- let _WorkState = LocalData.getInstance().getWorkState()
- switch (_WorkState) {
- case WorkState.引导:
- console.log('当前是引导关卡');
- //改变地图数据
- this.changeMap_ByYinDao()
- break;
- case WorkState.上班:
- console.log('当前是上班关卡');
- //改变地图数据
- this.changeMap()
- break;
- case WorkState.加班:
- console.log('当前是加班关卡');
- GameLevel.gameLevel = 6
- //改变地图数据
- this.changeMap()
- break;
- default:
- cc.error('未知状态');
- break;
- }
- //加载人物
- this.loadRole()
- //加载车子皮肤 设置位置
- this.loadMapBg()
- //加载车子皮肤 设置位置
- this.loadBus()
- //加载地图
- this.loadMap()
- }
- //下一关
- NextCoustomGame() {
- //现在的关卡状态
- let _WorkState = LocalData.getInstance().getWorkState()
- switch (_WorkState) {
- case WorkState.引导:
- cc.systemEvent.emit(EventName.driveBus, 1.5, false)
- PopManger.getInstance().Pop(PopName.Successfully)
- LocalData.getInstance().setWorkState(WorkState.上班)
- break;
- case WorkState.上班:
- //关卡++
- GameLevel.gameLevel++
- if (GameLevel.gameLevel == 6) {
- this.GameSecceed()
- } else {
- //恢复时间
- cc.systemEvent.emit(EventName.RestoreCountDown)
- //开始发车
- cc.systemEvent.emit(EventName.driveBus)
- }
- break;
- case WorkState.加班:
- cc.systemEvent.emit(EventName.driveBus, 1.5, false)
- PopManger.getInstance().Pop(PopName.Successfully)
- //发送服务器游戏成功or 失败
- PopManger.getInstance().GameOver(GameOver.succeed)
- break;
- default:
- cc.error('未知状态');
- break;
- }
- }
- GameSecceed() {
- PopManger.getInstance().Pop(PopName.Successfully)
- LocalData.getInstance().setWorkState(WorkState.加班)
- //发送服务器游戏成功or 失败
- PopManger.getInstance().GameOver(GameOver.succeed)
- //加班
- console.error('游戏通关了');
- console.error('执行加班处理');
- }
- protected update(dt: number): void {
- if (RoloInitOver && MapInitOver) {
- ChangeRoloInitOver(false)
- ChangeMapInitOver(false)
- cc.systemEvent.emit(EventName.InitCountDown)
- cc.systemEvent.emit(EventName.RoleStartBus)
- }
- }
- setGameSlider() {
- let Level_Array = this.node.getComponentsInChildren(cc.Sprite);
- // 进度
- for (let i = 0; i < Level_Array.length; i++) {
- if (i < GameLevel.gameLevel) {
- Level_Array[i].spriteFrame = this.sp_on; // 根据游戏级别设置为开启状态
- } else {
- Level_Array[i].spriteFrame = this.sp_off; // 其余的设置为关闭状态
- }
- }
- }
- //#region 引导关卡初始化
- changeMap_ByYinDao() {
- //加载地图数据 在加载车子
- ChangetableData(MapData_ByYinDao[0])
- //加载车子类型
- ChangetableDataBusType(MapDataBusTypes_ByYinDao[0])
- //修改车门位置
- ChangetableDataMen(MenPos[BusType])
- //加载灰色座位数据
- ChangeGraySitDownColor(MapDataGraySitDownColor_ByYinDao[0])
- //加载乘客数据
- ChangeRoloQueues(MapDataRoloQueues_ByYinDao[0])
- //加载倒计时时间
- ChangeCountDown(MapDataCountDown_ByYinDao[0])
- }
- //#endregion
- //#region 上班关卡初始化
- changeMap() {
- //加载地图数据 在加载车子
- ChangetableData(MapData[GameLevel.gameLevel - 1])
- //加载车子类型
- ChangetableDataBusType(MapDataBusTypes[GameLevel.gameLevel - 1])
- //修改车门位置
- ChangetableDataMen(MenPos[BusType])
- //加载灰色座位数据
- ChangeGraySitDownColor(MapDataGraySitDownColor[GameLevel.gameLevel - 1])
- //加载乘客数据
- ChangeRoloQueues(MapDataRoloQueues[GameLevel.gameLevel - 1])
- //加载倒计时时间
- ChangeCountDown(MapDataCountDown[GameLevel.gameLevel - 1])
- }
- //#endregion
- loadRole() {
- //初始化排队人群位置
- cc.systemEvent.emit(EventName.initRoleQueuePos)
- //生成人物
- cc.systemEvent.emit(EventName.BronRole)
- }
- //加载车子皮肤
- loadBus() {
- //生成车子皮肤
- cc.systemEvent.emit(EventName.BronBus)
- }
- //加载地图
- loadMap() {
- this.setGameSlider()
- }
- loadMapBg() {
- let bgNode = this.node.parent.getChildByName('background')
- let path = BusNodeData[BusType][LocalData.getInstance().getBusSkin() - 1].BgImage
- PopManger.getInstance().LoadAssets<cc.Texture2D>(path).then((sp) => {
- if (sp) {
- bgNode.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(sp)
- }
- }).catch((error) => {
- // 加载失败的处理
- });
- let Rail = BusNodeData[BusType][LocalData.getInstance().getBusSkin() - 1].Rail
- if (Rail) {
- for (let index = 0; index < bgNode.children.length; index++) {
- const sub_bgNode = bgNode.children[index];
- const element = Rail[index];
- if (element) {
- sub_bgNode.setPosition(element[0], element[1])
- sub_bgNode.setScale(element[2], element[3])
- sub_bgNode.active = true
- } else {
- sub_bgNode.active = false
- }
- }
- } else {
- bgNode.children.forEach(e => { e.active = false })
- }
- }
- }
|