Add: HeartManager, HeartGauge

This commit is contained in:
2018-05-15 09:07:17 +09:00
parent b89490facd
commit 407f95f26f
9 changed files with 240 additions and 34 deletions
+27 -31
View File
@@ -4,33 +4,41 @@ class ScoreManager {
this.score = 0;
this.highScore = 0;
this.onChangeScoreFunctions = [];
this.onChangeHighScoreFunctions = [];
this.onChangeScoreListeners = [];
this.onChangeHighScoreListeners = [];
}
addOnChangeScoreFunctions(onChangeFunction) {
this.onChangeScoreFunctions.push(onChangeFunction);
callListener(functionArray) {
if(functionArray.length > 0) {
for(let i = 0; i < functionArray.length; i++) {
functionArray[i](this.score);
}
}
}
removeOnChangeScoreFunctions(onChangeFunction) {
let itemIndex = this.onChangeScoreFunctions.indexOf(onChangeFunction);
addOnChangeScoreListener(onChangeFunction) {
this.onChangeScoreListeners.push(onChangeFunction);
}
removeOnChangeScoreListener(onChangeFunction) {
let itemIndex = this.onChangeScoreListeners.indexOf(onChangeFunction);
if(itemIndex > -1)
this.onChangeScoreFunctions.splice(itemIndex, 1);
this.onChangeScoreListeners.splice(itemIndex, 1);
}
addOnChangeHighScoreFunctions(onChangeHighScoreFunction) {
this.onChangeHighScoreFunctions.push(onChangeHighScoreFunction);
addOnChangeHighScoreListener(onChangeHighScoreFunction) {
this.onChangeHighScoreListeners.push(onChangeHighScoreFunction);
}
removeOnChangeHighScoreFunctions(onChangeHighScoreFunction) {
let itemIndex = this.onChangeHighScoreFunctions.indexOf(onChangeHighScoreFunction);
removeOnChangeHighScoreListener(onChangeHighScoreFunction) {
let itemIndex = this.onChangeHighScoreListeners.indexOf(onChangeHighScoreFunction);
if(itemIndex > -1)
this.onChangeHighScoreFunctions.splice(itemIndex, 1);
this.onChangeHighScoreListeners.splice(itemIndex, 1);
}
removeAllFunctions() {
this.onChangeScoreFunctions = [];
this.onChangeHighScoreFunctions = [];
removeAllListeners() {
this.onChangeScoreListeners = [];
this.onChangeHighScoreListeners = [];
}
@@ -56,24 +64,12 @@ class ScoreManager {
this.score = value;
// update score
if(beforeScore !== this.score) {
if(this.onChangeScoreFunctions.length > 0) {
for(let i = 0; i < this.onChangeScoreFunctions.length; i++) {
this.onChangeScoreFunctions[i](this.score);
}
}
}
if(beforeScore !== this.score)
this.callListener(this.onChangeScoreListeners);
// update high score
if(this.score > this.highScore) {
this.highScore = this.score;
if(this.onChangeHighScoreFunctions.length > 0) {
for(let i = 0; i < this.onChangeHighScoreFunctions.length; i++) {
this.onChangeHighScoreFunctions[i](this.highScore);
}
}
}
if(this.score > this.highScore)
this.callListener(this.onChangeHighScoreListeners);
}
}