286 lines
12 KiB
TypeScript
286 lines
12 KiB
TypeScript
|
||
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) {}
|
||
}
|