const constants = require('Constants'); var State = cc.Enum({ Menu: -1, Run: -1, Over: -1 }); var SpawnCollisionState = cc.Enum({ Normal: 0, TopAndDestory: 1, }); var PlayerState = cc.Enum({ Stop: -1, Run: -1, over: -1, }); var PlayerRunState =cc.Enum({ NormalRun: -1, HoldJavelinRun:-1, RideElephantRun: -1, over: -1, }); //加速带区域名字 var EnterZoneName = cc.Enum({ null: -1, LongAccelerationZone: -1, GroundZone: -1,//空白碰撞区域 }); var GameManager = cc.Class({ extends: cc.Component, properties: { PlayerCollisions: { default: [], type: [cc.Node], // displayName:"Player(collision)", // tooltip:"Array for player collision .", }, index: 0, PlayerCollisionName: [cc.String], GameSpeed: 0,//游戏基础速度 isEnterGameFinishZone: false, //长加速带区域 playerCurrentZone: { default: EnterZoneName.null, type: cc.Enum(EnterZoneName) }, //是否一直加速 isItAlwaysTouch: false, //进入长加速度,是否点击过。 isMustTouch: false, //跳远叠加的距离 longJumpCount: 0, //跳远的距离 // longJumpDistance:0, //标枪的叠加距离 javeCount: 0, //标枪的距离 // javelinDistance:0, //当前进入的项目 currentSpawnSport: -1, //最后得分 GameScore: { default: 0, displayName: "Score (player)", tooltip: "The score of player", }, //可以点击 isCanTouch:true, //重新开始游戏时候,给一段时间无敌,不会再次结束游戏 invincibleTime:2,//s isInvincible:false, }, statics: { State, SpawnCollisionState, PlayerState, EnterZoneName, PlayerRunState }, onLoad() { //开启碰撞体 var CollisioManager = cc.director.getCollisionManager(); CollisioManager.enabled = true; // CollisioManager.enabledDebugDraw = true; // 启用物理引擎相关功能 // cc.director.getPhysicsManager().enabled = true; // cc.director.getPhysicsManager().gravity = cc.v2(0, -160); GlobalData.GameManager = GameManager; GlobalData.game = this; //-- 游戏状态 this.state = State.Run; //-- 人物的状态 //开始时停止的 this.PlayerState = PlayerState.Run; //人物跑步状态 this.PlayerRunState = PlayerRunState.NormalRun; //设置游戏前进的速度 this.GameSpeed = constants.configGameSpeedMin; //获取heroControl this.HeroControlScript = cc.find('Canvas/HeroControl').getComponent('HeroControl'); //获取UiState.js this.GameUIState = this.node.getComponent('GameUIState'); }, //添加碰撞数组 addPlayerCollisionName(other) { this.PlayerCollisionName.push(other.node.name); console.log('addPlayerCollisionName:', this.PlayerCollisionName) }, //清空碰撞数组 clearPlayerCollisionName() { this.PlayerCollisionName = []; // this.GameStates.PlayerCollisionName.pop(other.node.name); console.log('clearPlayerCollisionName:', this.PlayerCollisionName) }, //获取HeroControl getHeroControl() { if (this.HeroControlScript) { return this.HeroControlScript; } else { console.warn('获取HeroControl为空!'); return null; } }, //获取GameUIState getGameUIState() { if (this.GameUIState) { return this.GameUIState; } else { console.warn('获取GameUIState为空!'); return null; } } });