287 lines
11 KiB
JavaScript
287 lines
11 KiB
JavaScript
var GameConfig = require("GameConfig");
|
|
var GameTools = require("GameTools");
|
|
var GameData = {
|
|
scoreCard0: [], //记录当前位置
|
|
scoreCard1: [], //记录第一次位置
|
|
scoreCard2: [], //记录第二次位置
|
|
scoreCard3: [], //记录第三次位置
|
|
score0: 0, // 记录当前得分
|
|
score1: 0, // 记录第一次得分
|
|
score2: 0,// 记录第二次得分
|
|
score3: 0,// 记录第三次得分
|
|
heightScore: 0, // 最高分
|
|
bestNum: 2, //最大数字
|
|
|
|
initData: function () {
|
|
this.scoreCard0 = new Array();
|
|
this.scoreCard1 = new Array();
|
|
this.scoreCard2 = new Array();
|
|
this.scoreCard3 = new Array();
|
|
for (let i = 0; i < GameConfig.CAED_LINES; i++) {
|
|
this.scoreCard0[i] = Array();
|
|
this.scoreCard1[i] = Array();
|
|
this.scoreCard2[i] = Array();
|
|
this.scoreCard3[i] = Array();
|
|
}
|
|
this.score0 = 0; // 记录当前得分
|
|
this.score1 = 0; // 记录第一次得分
|
|
this.score2 = 0;// 记录第二次得分
|
|
this.score3 = 0;// 记录第三次得分
|
|
this.heightScore = 0; // 最高分
|
|
this.bestNum = 2; //最大数字
|
|
},
|
|
getChallengeLevelNum: function () {
|
|
return 7;
|
|
},
|
|
getChallengeLevelData: function (type) {
|
|
if (type == 0) {
|
|
return "1000100000001000000010001";
|
|
}
|
|
else if (type == 1) {
|
|
return "1101110001000001000111011";
|
|
}
|
|
else if (type == 2) {
|
|
return "1100100001001001000010011";
|
|
}
|
|
else if (type == 3) {
|
|
return "0111000100000000010001110";
|
|
}
|
|
else if (type == 4) {
|
|
return "0001100001100011000011000";
|
|
}
|
|
else if (type == 5) {
|
|
return "0000000100011100010000000";
|
|
}
|
|
else if (type == 6) {
|
|
return "1000101010000000101010001";
|
|
}
|
|
},
|
|
getGameData: function (cardNum, cardX, cardY) {
|
|
return GameTools.getItemByLocalStorage("gameData_" + GameConfig.MAIN_MENU_NUM + "_" + cardNum + "_" + cardX + "_" + cardY, 0);
|
|
},
|
|
|
|
setGameData: function (gameData, cardNum, cardX, cardY) {
|
|
cc.sys.localStorage.setItem("gameData_" + GameConfig.MAIN_MENU_NUM + "_" + cardNum + "_" + cardX + "_" + cardY, gameData);
|
|
},
|
|
|
|
getGameScoreData: function (scoreNum) {
|
|
return GameTools.getItemByLocalStorage("score_" + GameConfig.MAIN_MENU_NUM + "_" + scoreNum, 0);
|
|
},
|
|
|
|
setGameScoreData: function (score, scoreNum) {
|
|
cc.sys.localStorage.setItem("score_" + GameConfig.MAIN_MENU_NUM + "_" + scoreNum, score);
|
|
},
|
|
|
|
isHaveGameData: function () {
|
|
return GameTools.getItemByLocalStorage("isHaveGameData_" + GameConfig.MAIN_MENU_NUM, false);
|
|
},
|
|
|
|
setHaveGameData: function (isHaveGameData) {
|
|
cc.sys.localStorage.setItem("isHaveGameData_" + GameConfig.MAIN_MENU_NUM, isHaveGameData);
|
|
},
|
|
|
|
getScoreNum: function () {
|
|
return GameTools.getItemByLocalStorage("ScoreNum_" + GameConfig.MAIN_MENU_NUM, 0);
|
|
},
|
|
|
|
setScoreNum: function (ScoreNum) {
|
|
cc.sys.localStorage.setItem("ScoreNum_" + GameConfig.MAIN_MENU_NUM, ScoreNum);
|
|
},
|
|
getHeightScore: function () {
|
|
return GameTools.getItemByLocalStorage("BestScoreNum_" + GameConfig.MAIN_MENU_NUM, 0);
|
|
},
|
|
|
|
setHeightScore: function (heightScore) {
|
|
cc.sys.localStorage.setItem("BestScoreNum_" + GameConfig.MAIN_MENU_NUM, heightScore);
|
|
},
|
|
getIsRecordHeightNum: function (heightNum) {
|
|
return GameTools.getItemByLocalStorage("isRecordHeightNum_" + GameConfig.MAIN_MENU_NUM + "_" + heightNum, false);
|
|
},
|
|
|
|
setIsRecordHeightNum: function (heightNum, isRecord) {
|
|
cc.sys.localStorage.setItem("isRecordHeightNum_" + GameConfig.MAIN_MENU_NUM + "_" + heightNum, isRecord);
|
|
},
|
|
|
|
setGameRewards: function (num) { //设置游戏奖励
|
|
if ((num >= 1024) && !this.getIsRecordHeightNum(num)) {
|
|
GameTools.playSimpleAudioEngine(3);
|
|
this.setIsRecordHeightNum(num, true);
|
|
}
|
|
let gameIntergralNum = 0;
|
|
switch (num) {
|
|
case 128:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 4 - GameConfig.CAED_LINES;
|
|
}
|
|
break;
|
|
case 256:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 5 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 1;
|
|
}
|
|
break;
|
|
case 512:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 6 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 2;
|
|
}
|
|
break;
|
|
case 1024:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 7 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 3;
|
|
}
|
|
break;
|
|
case 2048:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 8 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 4;
|
|
}
|
|
break;
|
|
case 4096:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 9 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 5;
|
|
}
|
|
break;
|
|
case 8192:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 10 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 6;
|
|
}
|
|
break;
|
|
case 16384:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 11 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 7;
|
|
}
|
|
break;
|
|
case 65536:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 12 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 8;
|
|
}
|
|
break;
|
|
case 131072:
|
|
if (GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPop && GameConfig.mainMenu != GameConfig.MainMenu.MainMenuNumPopStar) {
|
|
gameIntergralNum = 13 - GameConfig.CAED_LINES;
|
|
}
|
|
else {
|
|
gameIntergralNum = 9;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (gameIntergralNum > 0) {
|
|
this.setGameIntegral(gameIntergralNum);
|
|
}
|
|
return gameIntergralNum;
|
|
},
|
|
|
|
getGamePropNumber(propType) {
|
|
return GameTools.getItemByLocalStorage("gameProp" + propType, 0);
|
|
},
|
|
|
|
setGamePropNumber(propType, number) {
|
|
GameTools.setItemByLocalStorage("gameProp" + propType, GameTools.getItemByLocalStorage("gameProp" + propType, 0) + number);
|
|
},
|
|
|
|
getGameIntegral: function () //获取积分
|
|
{
|
|
return GameTools.getGameIntegral();
|
|
},
|
|
setGameIntegral: function (letrgral) {
|
|
GameTools.setGameIntegral(this.getGameIntegral() + letrgral);
|
|
},
|
|
isGameHelp: function () { //判断游戏是否进行了帮助
|
|
return GameTools.getItemByLocalStorage("isGameHelp" + GameConfig.mainMenu, false);
|
|
},
|
|
setGameHelp: function (gameHelp) {
|
|
cc.sys.localStorage.setItem("isGameHelp" + GameConfig.mainMenu, gameHelp);
|
|
},
|
|
getGamePassNum: function () {
|
|
return GameTools.getItemByLocalStorage("passNum" + GameConfig.mainMenu, 1);
|
|
},
|
|
setGamePassNum: function (passNum) {
|
|
cc.sys.localStorage.setItem("passNum" + GameConfig.mainMenu, passNum);
|
|
},
|
|
getGamePassScore: function () {
|
|
let passNum = GameData.getGamePassNum();
|
|
return (1000 + (passNum - 1) * 1500 + (passNum - 1) * (passNum - 1) * 500);
|
|
},
|
|
|
|
loadGameData: function (isLoad) {
|
|
if (isLoad) {
|
|
for (let i = 0; i < GameConfig.CAED_LINES; i++) {
|
|
for (let j = 0; j < GameConfig.CAED_LINES; j++) {
|
|
this.scoreCard0[i][j] = this.getGameData(0, i, j);
|
|
this.bestNum = this.bestNum > this.scoreCard0[i][j] ? this.bestNum : this.scoreCard0[i][j];
|
|
if (this.checkGameData(this.scoreCard0[i][j])) {
|
|
return true;
|
|
}
|
|
this.scoreCard1[i][j] = this.getGameData(1, i, j);
|
|
this.scoreCard2[i][j] = this.getGameData(2, i, j);
|
|
this.scoreCard3[i][j] = this.getGameData(3, i, j);
|
|
}
|
|
}
|
|
this.scoreNum = this.getScoreNum();
|
|
this.score0 = this.getGameScoreData(0);
|
|
this.score1 = this.getGameScoreData(1);
|
|
this.score2 = this.getGameScoreData(2);
|
|
this.score3 = this.getGameScoreData(3);
|
|
GameConfig.IS_GAME_WIN = (this.bestNum >= 2048 ? true : false);
|
|
} else {
|
|
this.setHeightScore(this.heightScore);
|
|
for (let i = 0; i < GameConfig.CAED_LINES; i++) {
|
|
for (let j = 0; j < GameConfig.CAED_LINES; j++) {
|
|
this.setGameData(this.scoreCard0[i][j], 0, i, j);
|
|
this.setGameData(this.scoreCard1[i][j], 1, i, j);
|
|
this.setGameData(this.scoreCard2[i][j], 2, i, j);
|
|
this.setGameData(this.scoreCard3[i][j], 3, i, j);
|
|
}
|
|
}
|
|
this.setScoreNum(this.scoreNum);
|
|
this.setGameScoreData(this.score0, 0);
|
|
this.setGameScoreData(this.score1, 1);
|
|
this.setGameScoreData(this.score2, 2);
|
|
this.setGameScoreData(this.score3, 3);
|
|
this.setHaveGameData(true);
|
|
}
|
|
return false;
|
|
},
|
|
checkGameData: function (gameData) {
|
|
if (gameData == 0) {
|
|
return false;
|
|
}
|
|
let num = 1;
|
|
for (let i = 1; i < 25; i++) {
|
|
if (gameData == num) {
|
|
return false;
|
|
}
|
|
num *= 2;
|
|
}
|
|
if (gameData == -1) {
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
};
|
|
|
|
module.exports = GameData; |