89 lines
2.5 KiB
JavaScript
89 lines
2.5 KiB
JavaScript
function Chart() {
|
|
this.chartGraphics = game.add.graphics(0, 0);
|
|
}
|
|
|
|
Chart.prototype.printChartBaseLine = function() {
|
|
this.chartGraphics.lineStyle(3, 0xffd900, 1);
|
|
this.chartGraphics.moveTo(100, Chart.CHART_LINE_Y);
|
|
this.chartGraphics.lineTo(game.world.width - 100, Chart.CHART_LINE_Y);
|
|
}
|
|
|
|
Chart.prototype.drawRecordGraph = function(index, date, bestRecord, min, max) {
|
|
var reverseIndex = (Chart.CHART_COUNT - 1) - index;
|
|
var posX = Chart.CHART_LINE_START_X + Chart.CHART_GRAPH_OFFSET_X + reverseIndex * Chart.CHART_GAP_PX;
|
|
var posY = Chart.CHART_LINE_Y;
|
|
|
|
this.drawText(
|
|
posX, posY + Chart.CHART_DATE_OFFSET_Y,
|
|
date === "-" ? "-" : DateUtil.printMonthDay(date)
|
|
);
|
|
|
|
if(bestRecord === "")
|
|
return;
|
|
|
|
var recordTextPosY = posY - Chart.CHART_HEIGHT - Chart.CHART_RECORD_OFFSET_Y;
|
|
var absRecordValue = Math.abs(bestRecord);
|
|
var recordWithUnit = RecordUtil.getRecordValueWithUnit(absRecordValue, sessionStorageManager.getPlayingAppID());
|
|
if(bestRecord >= 0) {
|
|
this.drawText(posX, recordTextPosY, recordWithUnit);
|
|
} else {
|
|
// recordWithUnit = recordWithUnit + "/실격";
|
|
recordWithUnit = "실격/" + recordWithUnit;
|
|
this.drawDisqualificationText(posX, recordTextPosY, recordWithUnit);
|
|
}
|
|
|
|
// chart
|
|
var chartColor = 0xffffff;
|
|
if(bestRecord >= 0)
|
|
chartColor = 0xdddddd;
|
|
else
|
|
chartColor = 0xffaaaa;
|
|
this.chartGraphics.lineStyle(50, chartColor, 1);
|
|
this.chartGraphics.moveTo(posX, posY);
|
|
this.chartGraphics.lineTo(posX, posY - Chart.CHART_HEIGHT * ( (absRecordValue - min) / (max - min) ));
|
|
}
|
|
|
|
Chart.prototype.drawText = function(posX, posY, text) {
|
|
var style = { font: "22px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
|
|
|
|
var textObject = game.add.text(
|
|
posX, posY,
|
|
text, style
|
|
);
|
|
textObject.anchor.set(0.5);
|
|
textObject.stroke = "#333";
|
|
textObject.strokeThickness = 3;
|
|
|
|
return textObject;
|
|
}
|
|
|
|
Chart.prototype.drawDisqualificationText = function(posX, posY, text) {
|
|
var style = { font: "22px Arial", fill: "#faa", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
|
|
|
|
var textObject = game.add.text(
|
|
posX, posY,
|
|
text, style
|
|
);
|
|
textObject.anchor.set(0.5);
|
|
textObject.stroke = "#333";
|
|
textObject.strokeThickness = 3;
|
|
|
|
return textObject;
|
|
}
|
|
|
|
Chart.prototype.getFontStyle = function() {
|
|
return { font: "32px Arial", fill: "#fff" };
|
|
}
|
|
|
|
|
|
Chart.CHART_COUNT = 7;
|
|
|
|
Chart.CHART_LINE_START_X = 100;
|
|
Chart.CHART_LINE_Y = 648;
|
|
|
|
Chart.CHART_GAP_PX = 120;
|
|
Chart.CHART_HEIGHT = 120;
|
|
|
|
Chart.CHART_GRAPH_OFFSET_X = 50;
|
|
Chart.CHART_DATE_OFFSET_Y = 20;
|
|
Chart.CHART_RECORD_OFFSET_Y = 30; |