Add: ranking board print record

This commit is contained in:
2018-05-17 14:12:35 +09:00
parent 2c1b928554
commit bf7a136ed8
3 changed files with 119 additions and 201 deletions
+58 -48
View File
@@ -18,36 +18,12 @@ class DBConnectManager {
this.appName = appName;
}
requestMyHistory(listener) {
requestPlayerHistory(listener) {
let historyRecordManager = new HistoryRecordManager();
listener(historyRecordManager);
}
requestRankingHour(listener) {
this.requestRanking(type, listener);
}
requestRankingDay(listener) {
this.requestRanking(type, listener);
}
requestRankingMonth(listener) {
this.requestRanking(type, listener);
}
requestAllRankingHour(listener) {
this.requestRanking(type, listener);
}
requestAllRankingDay(listener) {
this.requestRanking(type, listener);
}
requestAllRankingMonth(listener) {
this.requestRanking(type, listener);
}
requestRanking(type, listener) {
let rankingRecordManager = new RankingRecordManager();
@@ -55,14 +31,16 @@ class DBConnectManager {
}
requestTempMyHistory(listener) {
requestTempPlayerHistory(listener) {
let historyRecordManager = new HistoryRecordManager();
historyRecordManager.push(new HistoryRecord("05/14", "space_invaders", 14460));
historyRecordManager.push(new HistoryRecord("05/13", "space_invaders", 12860));
historyRecordManager.push(new HistoryRecord("05/12", "typing_english_basic", 15460));
historyRecordManager.push(new HistoryRecord("05/11", "typing_korean_basic", 13040));
historyRecordManager.push(new HistoryRecord("05/10", "space_invaders", 15460));
historyRecordManager.push(new HistoryRecord("05/11", "typing_korean_basic", 3040));
historyRecordManager.push(new HistoryRecord("05/12", "typing_english_basic", 460));
historyRecordManager.push(new HistoryRecord("05/13", "space_invaders", 60));
historyRecordManager.push(new HistoryRecord("05/14", "space_invaders", 8));
historyRecordManager.push(new HistoryRecord("05/09", "typing_english_basic", 14607));
historyRecordManager.push(new HistoryRecord("05/08", "typing_korean_basic", 13058));
if(listener === null)
return;
@@ -70,30 +48,62 @@ class DBConnectManager {
listener(historyRecordManager);
}
requestTempRanking(userID, appName, rankingRecordManager, listener) {
requestTempRanking(type, listener) {
let rankingRecordManager = new RankingRecordManager();
rankingRecordManager.push(new RankingRecord(1, "강경모", 4400));
rankingRecordManager.push(new RankingRecord(2, "강성태", 3400));
rankingRecordManager.push(new RankingRecord(3, "김기덕", 2400));
rankingRecordManager.push(new RankingRecord(4, "김남희", 1400));
rankingRecordManager.push(new RankingRecord(5, "고봉순", 900));
rankingRecordManager.push(new RankingRecord(6, "파르마", 800));
rankingRecordManager.push(new RankingRecord(7, "박지상", 700));
rankingRecordManager.push(new RankingRecord(8, "신현주", 600));
rankingRecordManager.push(new RankingRecord(9, "꼬봉이", 500));
rankingRecordManager.push(new RankingRecord(10, "거북이", 400));
rankingRecordManager.push(new RankingRecord(11, "다람쥐", 300));
rankingRecordManager.push(new RankingRecord(12, "사시미", 200));
rankingRecordManager.push(new RankingRecord(13, "태권도", 100));
rankingRecordManager.push(new RankingRecord(14, "합기도", 40));
rankingRecordManager.push(new RankingRecord(15, "우습지", 10));
rankingRecordManager.push(new RankingRecord(16, "하하하", 4));
if(listener === null)
return;
listener(rankingRecordManager);
/*
let jsonRankingList = [
{ "UserID":"17", "Name":"강경모", "BestRecord":"4400" },
{ "UserID":"2", "Name":"강성태", "BestRecord":"3400" },
{ "UserID":"3", "Name":"김기덕", "BestRecord":"2400" },
{ "UserID":"4", "Name":"김남희", "BestRecord":"1400" },
{ "UserID":"5", "Name":"고봉순", "BestRecord":"900" },
{ "UserID":"6", "Name":"파르마", "BestRecord":"800" },
{ "UserID":"1", "Name":"박지상", "BestRecord":"700" },
{ "UserID":"8", "Name":"신현주", "BestRecord":"600" },
{ "UserID":"9", "Name":"꼬봉이", "BestRecord":"500" },
{ "UserID":"10", "Name":"거북이", "BestRecord":"400" },
{ "UserID":"11", "Name":"다람쥐", "BestRecord":"300" },
{ "UserID":"12", "Name":"사시미", "BestRecord":"200" },
{ "UserID":"13", "Name":"태권도", "BestRecord":"100" },
{ "UserID":"14", "Name":"합기도", "BestRecord":"40" },
{ "UserID":"15", "Name":"우습지", "BestRecord":"10" },
{ "UserID":"16", "Name":"하하하", "BestRecord":"4" },
{ "UserID":"17", "Name":"강경모", 4400" },
{ "UserID":"2", "Name":"강성태", 3400" },
{ "UserID":"3", "Name":"김기덕", 2400" },
{ "UserID":"4", "Name":"김남희", 1400" },
{ "UserID":"5", "Name":"고봉순", 900" },
{ "UserID":"6", "Name":"파르마", 800" },
{ "UserID":"1", "Name":"박지상", 700" },
{ "UserID":"8", "Name":"신현주", 600" },
{ "UserID":"9", "Name":"꼬봉이", 500" },
{ "UserID":"10", "Name":"거북이", 400" },
{ "UserID":"11", "Name":"다람쥐", 300" },
{ "UserID":"12", "Name":"사시미", 200" },
{ "UserID":"13", "Name":"태권도", 100" },
{ "UserID":"14", "Name":"합기도", 40" },
{ "UserID":"15", "Name":"우습지", 10" },
{ "UserID":"16", "Name":"하하하", 4" },
];
if(listener === null)
return;
listener();
*/
}
}
}
DBConnectManager.TYPE_MY_RANKING_HOUR = 0;
DBConnectManager.TYPE_MY_RANKING_DAY = 1;
DBConnectManager.TYPE_MY_RANKING_MONTH = 2;
DBConnectManager.TYPE_ALL_RANKING_HOUR = 3;
DBConnectManager.TYPE_ALL_RANKING_DAY = 4;
DBConnectManager.TYPE_ALL_RANKING_MONTH = 5;
+5 -3
View File
@@ -13,10 +13,12 @@ class HistoryBoard {
this.textMyRanking = game.add.text(posX, posY + 100, '', arrayTabStyle)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
this.dbConnectManager.requestTempMyHistory( historyRecordManager => {
let self = this;
let self = this;
this.dbConnectManager.requestTempPlayerHistory( historyRecordManager => {
for(let i = 0; i < historyRecordManager.count; i++) {
if(i > 6)
break;
let data = historyRecordManager.getAt(i);
self.printRecord(i, data.date, data.score);
}
+56 -150
View File
@@ -4,168 +4,74 @@
class RankingBoard {
constructor() {
let arrayTabStyle = { font: "20px Arial", fill: "#fff", align: "left", tabs: [ 40, 80, 120 ] };
this.dbConnectManager = new DBConnectManager();
let posX = 340;
let posY = game.world.height / 2 - 10;
this.textHourRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle);
posX = 560;
this.textDayRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle);
posX = 780;
this.textMonthRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle);
this.showRankingHour(this.makeTemporaryJsonRankingList());
this.showRankingDay(this.makeTemporaryJsonRankingList());
this.showRankingMonth(this.makeTemporaryJsonRankingList());
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_HOUR);
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_DAY);
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_MONTH);
}
printRankingContent(x, y, style) {
return game.add.text(x, y, '', style)
requestRanking(type, rankingRecordManager) {
let self = this;
this.dbConnectManager.requestTempRanking(type, rankingRecordManager => {
for(let i = 0; i < rankingRecordManager.count; i++) {
if(i > 6)
break;
let data = rankingRecordManager.getAt(i);
self.printRecord(type, i, data);
}
});
}
printRecord(type, index, data) {
var style = { font: "20px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "top" };
// rank
style.boundsAlignH = "right";
game.add.text(this.getPosX(type), this.getPosY(index), data.rank, style)
.setTextBounds(0, 0, 40, 40)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// user name
game.add.text(this.getPosX(type) + 60, this.getPosY(index), data.userName, style)
.setTextBounds(0, 0, 60, 60)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// score
let numberWithCommas = NumberUtil.numberWithCommas(data.score);
style.boundsAlignH = "right";
game.add.text(this.getPosX(type) + 120, this.getPosY(index), numberWithCommas, style)
.setTextBounds(0, 0, 80, 60)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
}
showRankingHour(jsonRankingList) {
if(jsonRankingList == null) {
var rankEmpty = [ ];
this.textHourRanking.parseList(rankEmpty);
getPosX(type) {
let posX = 0;
return;
switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR:
case DBConnectManager.TYPE_ALL_RANKING_HOUR:
posX = 340;
break;
case DBConnectManager.TYPE_MY_RANKING_DAY:
case DBConnectManager.TYPE_ALL_RANKING_DAY:
posX = 560;
break;
case DBConnectManager.TYPE_MY_RANKING_MONTH:
case DBConnectManager.TYPE_ALL_RANKING_MONTH:
posX = 780;
}
/*
var recordArray = this.getRankingArrayFromJSON(jsonRankingList2);
*/
var recordArray = this.getRankingArrayFromJSON(jsonRankingList);
// console.log("Ranking Hour : " + recordArray);
this.textHourRanking.parseList(recordArray);
this.showMedal(this.medalHour, this.getMyRankFromJSON(jsonRankingList));
return posX;
}
showRankingDay(jsonRankingList) {
// console.log("Ranking Day : " + jsonRankingList);
if(jsonRankingList == null) {
var rankEmpty = [ ];
this.textDayRanking.parseList(rankEmpty);
return;
}
var recordArray = this.getRankingArrayFromJSON(jsonRankingList);
// console.log("Ranking Day : " + recordArray);
this.textDayRanking.parseList(recordArray);
this.showMedal(this.medalDay, this.getMyRankFromJSON(jsonRankingList));
getPosY(index) {
return game.world.height / 2 + 90 + 30 * index;
}
showRankingMonth(jsonRankingList) {
if(jsonRankingList == null) {
var rankEmpty = [ ];
this.textMonthRanking.parseList(rankEmpty);
return;
}
var recordArray = this.getRankingArrayFromJSON(jsonRankingList);
// console.log("Ranking Month : " + recordArray);
this.textMonthRanking.parseList(recordArray);
this.showMedal(this.medalMonth, this.getMyRankFromJSON(jsonRankingList));
}
getRankingArrayFromJSON(jsonRankingList) {
var rankingListCount = jsonRankingList.length;
var myRank = this.getMyRankFromJSON(jsonRankingList);
var myRankIndex = myRank - 1;
// console.log("myRankIndex : " + myRankIndex);
var startIndex = 0;
var endIndex = rankingListCount;
if(rankingListCount > 7) {
if(myRank < rankingListCount - 3) { // my rank is better than the worst 3
if(myRank < 5) {
startIndex = 0;
endIndex = rankingListCount > 7 ? 7 : rankingListCount;
} else {
startIndex = myRankIndex - 3;
endIndex = myRankIndex + 4;
}
} else { // my rank is in the worst 3
startIndex = rankingListCount > 7 ? rankingListCount - 7 : 0;
endIndex = rankingListCount;
}
}
var recordArray = [];
for(var i = startIndex; i < endIndex; i++) {
var bestRecordRow = [];
// bestRecordRow[0] = jsonRankingList[i]['UserID'];
bestRecordRow[0] = i + 1;
bestRecordRow[1] = jsonRankingList[i]['Name'];
bestRecordRow[2] = NumberUtil.numberWithCommas(Math.floor(jsonRankingList[i]['BestRecord']));
// console.log("$BestRecordRow : " + bestRecordRow[0] + ", " + bestRecordRow[1] + ", " + bestRecordRow[2]);
recordArray.push(bestRecordRow);
}
return recordArray;
}
getMyRankFromJSON(jsonRankingList) {
var myRank = -1;
for(var i = 0; i < jsonRankingList.length; i++) {
if(jsonRankingList[i]['UserID'] == sessionStorageManager.playerUserID) {
myRank = i + 1;
}
}
return myRank;
}
showMedal(medal, myRank) {
/*
if(myRank > 3) {
medal.alpha = 0;
return;
}
if(myRank == 1)
medal.loadTexture("medal_gold");
else if(myRank == 2)
medal.loadTexture("medal_silver");
else if(myRank == 3)
medal.loadTexture("medal_bronze");
medal.alpha = 1;
medal.scale.setTo(0.5);
game.add.tween(medal.scale).to( {x: 0.7, y: 0.7}, 1000, Phaser.Easing.Bounce.Out, true);
*/
}
makeTemporaryJsonRankingList() {
let jsonRankingList = [
{ "UserID":"17", "Name":"강경모", "BestRecord":"4400" },
{ "UserID":"2", "Name":"강성태", "BestRecord":"3400" },
{ "UserID":"3", "Name":"김기덕", "BestRecord":"2400" },
{ "UserID":"4", "Name":"김남희", "BestRecord":"1400" },
{ "UserID":"5", "Name":"고봉순", "BestRecord":"900" },
{ "UserID":"6", "Name":"파르마", "BestRecord":"800" },
{ "UserID":"1", "Name":"박지상", "BestRecord":"700" },
{ "UserID":"8", "Name":"신현주", "BestRecord":"600" },
{ "UserID":"9", "Name":"꼬봉이", "BestRecord":"500" },
{ "UserID":"10", "Name":"거북이", "BestRecord":"400" },
{ "UserID":"11", "Name":"다람쥐", "BestRecord":"300" },
{ "UserID":"12", "Name":"사시미", "BestRecord":"200" },
{ "UserID":"13", "Name":"태권도", "BestRecord":"100" },
{ "UserID":"14", "Name":"합기도", "BestRecord":"40" },
{ "UserID":"15", "Name":"우습지", "BestRecord":"10" },
{ "UserID":"16", "Name":"하하하", "BestRecord":"4" },
];
return jsonRankingList;
}
}