Fix: complete TimeUtil, RealtimeStageTimer
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
function RealtimeStageTimer(timeLimitMS) {
|
||||
this.timeLimit = timeLimitMS;
|
||||
function RealtimeStageTimer(timeLimitSec) {
|
||||
this.timeLimit = timeLimitSec;
|
||||
|
||||
this.startTime = 0;
|
||||
this.elapsedTime = 0;
|
||||
this.isStarted = false;
|
||||
this.isPaused = true;
|
||||
|
||||
this.onTimeUpdate = null;
|
||||
this.onTimeOver = null;
|
||||
|
||||
this.timerEvent = null;
|
||||
}
|
||||
@@ -14,7 +16,14 @@ RealtimeStageTimer.prototype.setTimeUpdateEvent = function(eventMethod) {
|
||||
this.onTimeUpdate = eventMethod;
|
||||
}
|
||||
|
||||
RealtimeStageTimer.prototype.setTimeOverEvent = function(eventMethod) {
|
||||
this.onTimeOver = eventMethod;
|
||||
}
|
||||
|
||||
RealtimeStageTimer.prototype.start = function() {
|
||||
if(this.isStarted === true)
|
||||
return;
|
||||
|
||||
this.isPaused = false;
|
||||
this.startTime = game.time.totalElapsedSeconds();
|
||||
|
||||
@@ -27,13 +36,22 @@ RealtimeStageTimer.prototype.start = function() {
|
||||
|
||||
RealtimeStageTimer.prototype.pause = function() {
|
||||
this.isPaused = true;
|
||||
|
||||
this.sendElapsedTime();
|
||||
}
|
||||
|
||||
RealtimeStageTimer.prototype.resume = function() {
|
||||
this.isPaused = false;
|
||||
|
||||
this.sendElapsedTime();
|
||||
}
|
||||
|
||||
RealtimeStageTimer.prototype.stop = function() {
|
||||
this.isStarted = false;
|
||||
this.isPaused = true;
|
||||
|
||||
this.sendElapsedTime();
|
||||
|
||||
var recordTime = game.time.totalElapsedSeconds() - this.startTime;
|
||||
this.removeTimer();
|
||||
|
||||
@@ -45,6 +63,17 @@ RealtimeStageTimer.prototype.updateTimer = function() {
|
||||
return;
|
||||
|
||||
this.elapsedTime = game.time.totalElapsedSeconds() - this.startTime;
|
||||
|
||||
var timeLeft = this.timeLimit - this.elapsedTime;
|
||||
if(timeLeft < 0) {
|
||||
this.stop();
|
||||
|
||||
if(this.onTimeOver !== null)
|
||||
this.onTimeOver();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.sendElapsedTime();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,87 @@ TimeUtil.getTwoDigitSecondFromMS = function(timeMS) {
|
||||
|
||||
|
||||
|
||||
TimeUtil.getFullHourFromSec = function(timeSec) {
|
||||
return Math.floor(timeSec / TimeUtil.HOUR_SEC);
|
||||
}
|
||||
|
||||
TimeUtil.getHourFromSec = function(timeSec) {
|
||||
return TimeUtil.getFullHourFromSec(timeSec) % 24;
|
||||
}
|
||||
|
||||
TimeUtil.getTwoDigitHourFromSec = function(timeSec) {
|
||||
var twoDigitHour = TimeUtil.getHourFromSec(timeSec);
|
||||
return StringUtil.getNumberStartWithZero(twoDigitHour, 2);
|
||||
}
|
||||
|
||||
|
||||
TimeUtil.getFullMinuteFromSec = function(timeSec) {
|
||||
return Math.floor(timeSec / TimeUtil.MINUTE_SEC);
|
||||
}
|
||||
|
||||
TimeUtil.getMinuteFromSec = function(timeSec) {
|
||||
return TimeUtil.getFullMinuteFromSec(timeSec) % 60;
|
||||
}
|
||||
|
||||
TimeUtil.getTwoDigitMinuteFromSec = function(timeSec) {
|
||||
var twoDigitMinute = TimeUtil.getMinuteFromSec(timeSec);
|
||||
return StringUtil.getNumberStartWithZero(twoDigitMinute, 2);
|
||||
}
|
||||
|
||||
|
||||
TimeUtil.getFullSecondFromSec = function(timeSec) {
|
||||
return Math.floor(timeSec / TimeUtil.SECOND_SEC);
|
||||
}
|
||||
|
||||
TimeUtil.getSecondFromSec = function(timeSec) {
|
||||
return TimeUtil.getFullSecondFromSec(timeSec) % 60;
|
||||
}
|
||||
|
||||
TimeUtil.getTwoDigitSecondFromSec = function(timeSec) {
|
||||
var twoDigitSecond = TimeUtil.getSecondFromSec(timeSec);
|
||||
return StringUtil.getNumberStartWithZero(twoDigitSecond, 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TimeUtil.printTimeFromSec = function(timeSec) {
|
||||
var fullTime = "";
|
||||
|
||||
var twoDigitHour = TimeUtil.getTwoDigitHourFromSec(timeSec);
|
||||
if(twoDigitHour !== "00")
|
||||
fullTime = twoDigitHour + "시간 ";
|
||||
|
||||
var twoDigitMinute = TimeUtil.getTwoDigitMinuteFromSec(timeSec);
|
||||
if(twoDigitMinute !== "00")
|
||||
fullTime = fullTime + twoDigitMinute + "분 ";
|
||||
|
||||
var twoDigitSecond = TimeUtil.getTwoDigitSecondFromSec(timeSec);
|
||||
fullTime = fullTime + twoDigitSecond + "초";
|
||||
|
||||
return fullTime;
|
||||
}
|
||||
|
||||
|
||||
TimeUtil.printHHMMSSFromSec = function(timeSec) {
|
||||
var fullTime = "";
|
||||
|
||||
var twoDigitHour = TimeUtil.getTwoDigitHourFromSec(timeSec);
|
||||
if(twoDigitHour !== "00")
|
||||
fullTime = twoDigitHour + ":";
|
||||
|
||||
var twoDigitMinute = TimeUtil.getTwoDigitMinuteFromSec(timeSec);
|
||||
if(twoDigitMinute !== "00")
|
||||
fullTime = fullTime + twoDigitMinute + ":";
|
||||
|
||||
var twoDigitSecond = TimeUtil.getTwoDigitSecondFromSec(timeSec);
|
||||
fullTime = fullTime + twoDigitSecond;
|
||||
|
||||
return fullTime;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TimeUtil.getYYYYMMDD = function(date) {
|
||||
// return date.toISOString().slice(0,10);
|
||||
@@ -75,4 +156,10 @@ TimeUtil.printMonthDay = function(date) {
|
||||
TimeUtil.SECOND_MS = 1000;
|
||||
TimeUtil.MINUTE_MS = TimeUtil.SECOND_MS * 60;
|
||||
TimeUtil.HOUR_MS = TimeUtil.MINUTE_MS * 60;
|
||||
TimeUtil.DAY_MS = TimeUtil.HOUR_MS * 24;
|
||||
TimeUtil.DAY_MS = TimeUtil.HOUR_MS * 24;
|
||||
|
||||
|
||||
TimeUtil.SECOND_SEC = 1;
|
||||
TimeUtil.MINUTE_SEC = TimeUtil.SECOND_SEC * 60;
|
||||
TimeUtil.HOUR_SEC = TimeUtil.MINUTE_SEC * 60;
|
||||
TimeUtil.DAY_SEC = TimeUtil.HOUR_SEC * 24;
|
||||
Reference in New Issue
Block a user