const {ccclass, property} = cc._decorator; @ccclass export default class GameData extends cc.Component { static _instance: any; GAME_DATA: any[];//备用 AudioManager: any; BLOCK_INFO: { //难度控制 name: string; //块名字 //块名字 speed: number; //每个块的基础速度 thickness: boolean; }[]; CLICK_DATA: { type: number; //默认类型 level: number; //层数 block: number; //块的名字 percent: number; //距离中心百分比 getScore: number; //本轮获得分数 totalScore: number; //本轮过后总分数 difficulty: number; //本轮难度系数 height: boolean; //本轮是否增高 combo: number; //连击数 accuracy: number; //精准度 (0-3) 0 失败掉落 jumps: number; //本轮玩家跳跃次数,1或者2 timer: number; //本局游戏剩余时间 fake: boolean; //是否有平台干扰项 fakeSpeed: number; //假平台移动速度 speed:number; //真平台移动速度 round:number; //回合数 levelMax:number, //最高层数 difficultyMax:number //最高难度系数 isAFK:boolean //是否挂机 第一层连续死3次且没跳 }; LEVEL_INFO: { //难度控制 speed: number; //速度加成基础 addSpeed: number; //速度加成系数 reduceSpeed: number; //速度增加范围 jiansu: number; //速度增加的范围加值 round1: number; //加速范围控制回合档数 2 小于这回合为3double hit round2: number; //加速范围控制回合档数 1 round3: number; //加速范围控制回合档数 0.5 doubleSuccess: number; //连击次数(N次以上,开启干扰项) fastSpeed: number; //矮薄块最快速度 slowSpeed: number; //厚块最块速度 doubleHit: number; //连击加成 doubleAdd: number; //每次连击后 连击加成 doubleMax: number; //连击加成最大值 layer: number; //层级加成 layerAdd: number; //每次层级提升,层级加成的加成 star1: number; //获得一颗星百分比 star2: number; //获得两颗星百分比 star3: number; //获得三颗星百分比 scoreMax: number; //暂时总分 levelMax: number; //最高层数 difficultyMax: number; //最高难度系数 }; GM_INFO: { // isEnd: false, mean_Time: number; //平均放箭速度 total: number; //总共对的个数 currSeed: number; //用于随机数种子 gameId: string; userId: number; scode: string; //用户code,从网页后缀获取 guide: boolean; //是否有引导 url: string; custom: number; //从这开始 jumpUpTime: number; //起跳时间 jumpDownTime: number; //落地时间 jumpHeight: number; //跳跃高度 blockMin: number; //薄块增加高度 blockMax: number; //厚块增加高度(在自身高度基础上)此值可以为负值 blockScale: number; //次值满值为块种类总个数12,6为百分之50厚,50薄,个数增加,厚度比例降低 distanceMin: number; //落地范围在百分百内必成功,可改参 distanceMax: number; //落地范围最大值,弱大于,判断脚在外面 life: number; //可复活次数 levelMax: number; //最高层数 difficultyMax: number; //最高难度系数 score: number; //总分 success: boolean; //是否成功 probation: boolean; //试用期 afkCount: number; //第一层不跳死的次数 isAFK: boolean; //是否挂机 }; // 0.15 0.37 0.8 获得三个星星 -2167.675 -2054 两个尺寸的屏幕的补偿值 onLoad () { if (GameData._instance == null) { GameData._instance = this; // cc.game.addPersistRootNode(this.node); this.AudioManager = this.node.getComponent('BallAudioManager'); } else { this.node.destroy(); return; } } start () { //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 this.GAME_DATA = [ ] this.GM_INFO_init(); //GM_INFO存储 一些游戏数据,这些数据至少是当局内不会重置清零的 this.LEVEL_init(); //每局游戏内游戏参数,可复活清零或者重玩清零 this.BLOCK_INFO_init(); //每个游戏不同,此游戏为跳板参数 this.CLICK_init(); //埋点数据,用于上传重要数据 } GM_INFO_init(){ this.GM_INFO = { // isEnd: false, mean_Time:0, //平均放箭速度 total:0, //总共对的个数 currSeed: 203213, //用于随机数种子 gameId:'100001', userId:200139, scode: "", //用户code,从网页后缀获取 guide:true, //是否有引导 url:"https://dev.api.sparkus.cn", custom: 0, //从这开始 jumpUpTime:0.5, //起跳时间 jumpDownTime:0.4, //落地时间 jumpHeight:150, //跳跃高度 blockMin:30, //薄块增加高度 blockMax:-10, //厚块增加高度(在自身高度基础上)此值可以为负值 blockScale:5, //次值满值为块种类总个数12,6为百分之50厚,50薄,个数增加,厚度比例降低 distanceMin:100, //落地范围在百分百内必成功,可改参 distanceMax:110, //落地范围最大值,弱大于,判断脚在外面 life:3, //可复活次数 levelMax:1, //最高层数 difficultyMax:1, //最高难度系数 score:0, //总分 success:true, //是否成功 probation:true, //试用期 afkCount:0, //第一层不跳死的次数 isAFK:false //是否挂机 }; this.setCode(this.getKey("scode")); } CLICK_init(){ GameData._instance.CLICK_DATA = { type:1, //默认类型 level:0, //层数 block:0, //块的名字 percent:0, //距离中心百分比 getScore:0, //本轮获得分数 totalScore:0, //本轮过后总分数 difficulty:0, //本轮难度系数 height:false, //本轮是否增高 combo:0, //连击数 accuracy:0, //精准度 (0-3) 0 失败掉落 jumps:0, //本轮玩家跳跃次数,1或者2 timer:0, //本局游戏剩余时间 fake:false, //是否有平台干扰项 fakeSpeed:0, //假平台移动速度 speed:0, //真平台移动速度 round:0, //回合数 isAFK:false //是否挂机 } } LEVEL_init(){ this.LEVEL_INFO = { //难度控制 speed:1, //速度加成基础 addSpeed:0.015, //速度加成系数 reduceSpeed:0, //速度增加范围 jiansu:3, //速度增加的范围加值 round1:10, //加速范围控制回合档数 2 小于这回合为3double hit round2:20, //加速范围控制回合档数 1 round3:30, //加速范围控制回合档数 0.5 doubleSuccess:3, //连击次数(N次以上,开启干扰项) fastSpeed:3.5, //矮薄块最快速度 slowSpeed:4.5, //厚块最块速度 doubleHit:1, //连击加成 doubleAdd:0.05, //每次连击后 连击加成 doubleMax:2, //连击加成最大值 layer:100, //层级加成 layerAdd:2, //每次层级提升,层级加成的加成 star1:0.2, //获得一颗星百分比 star2:0.4, //获得两颗星百分比 star3:0.8, //获得三颗星百分比 scoreMax:120000, //暂时总分 levelMax:1, //最高层数 difficultyMax:1 //最高难度系数 } } BLOCK_INFO_init(){ this.BLOCK_INFO = [ { //难度控制 name:"block1", //块名字 speed:8, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block2", //块名字 speed:9, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block3", //块名字 speed:8, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block4", //块名字 speed:9, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block5", //块名字 speed:8, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block6", //块名字 speed:8, //每个块的基础速度 thickness:false, //当前块的厚度 }, { //难度控制 name:"block7", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block8", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block9", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block10", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block11", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block12", //块名字 speed:10, //每个块的基础速度 thickness:true, //当前块的厚度 }, { //难度控制 name:"block0", //块名字 speed:14, //每个块的基础速度 thickness:false, //当前块的厚度 }, ] } setCode(code){ this.GM_INFO.scode = code; } getKey(key){ var reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i'); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return ""; } // update (dt) {} }