Fix: card matching animation bug

This commit is contained in:
2018-10-28 20:33:59 +09:00
parent d9259be5e4
commit fd8d7f8739
2 changed files with 45 additions and 34 deletions
+27
View File
@@ -139,6 +139,31 @@ DudeCard.prototype.removeShowAndHideEvent = function() {
} }
} }
DudeCard.prototype.startWaitAndHideAnimation = function() {
this.showAndHideEvent = game.time.events.add(
DudeCard.WAIT_AND_HIDE_TIME_SECOND * Phaser.Timer.SECOND,
this.finishWaitAndHideAnimation,
this
);
}
DudeCard.prototype.finishWaitAndHideAnimation = function() {
this.hide();
}
DudeCard.prototype.startWaitAndFlipToBackAnimation = function() {
this.showAndHideEvent = game.time.events.add(
DudeCard.WAIT_AND_FLIP_TO_BACK_TIME_SECOND * Phaser.Timer.SECOND,
this.finishWaitAndFlipToBackAnimation,
this
);
}
DudeCard.prototype.finishWaitAndFlipToBackAnimation = function() {
this.flipToBack();
}
DudeCard.MAX_CARD_COLUMN_NO = 5; DudeCard.MAX_CARD_COLUMN_NO = 5;
DudeCard.MAX_CARD_ROW_NO = 4; DudeCard.MAX_CARD_ROW_NO = 4;
@@ -147,4 +172,6 @@ DudeCard.CARD_INITIAL_POSITION_X = -100;
DudeCard.CARD_INITIAL_POSITION_Y = -100; DudeCard.CARD_INITIAL_POSITION_Y = -100;
DudeCard.SHOW_AND_HIDE_TIME_SECOND = 0.5; DudeCard.SHOW_AND_HIDE_TIME_SECOND = 0.5;
DudeCard.WAIT_AND_HIDE_TIME_SECOND = 0.5;
DudeCard.WAIT_AND_FLIP_TO_BACK_TIME_SECOND = 0.5;
DudeCard.INIT_LEFT_TIME_MIN = 2; DudeCard.INIT_LEFT_TIME_MIN = 2;
+18 -34
View File
@@ -359,9 +359,9 @@ var Game = {
if(this.isCardSelectEdgeAll() == true) { // selected 2 cards if(this.isCardSelectEdgeAll() == true) { // selected 2 cards
if(this.isSameCharacterCard() == true) // selected same cards if(this.isSameCharacterCard() == true) // selected same cards
this.clearOpenedTwoCards(); this.clearSameTwoCards();
else // selected different cards else // selected different cards
this.resetOpenedTwoCards(); this.resetDifferentTwoCards();
} }
} }
@@ -398,13 +398,6 @@ var Game = {
this.cards[this.getCardIndex(col, row)].flipToBack(); this.cards[this.getCardIndex(col, row)].flipToBack();
}, },
clearCards: function(col, row) {
var index = this.getCardIndex(col, row);
this.cards[index].hide();
index = this.selectedCardRow * DudeCard.MAX_CARD_COLUMN_NO + this.selectedCardCol;
this.cards[index].hide();
},
resetCards: function(col, row) { resetCards: function(col, row) {
var index = this.getCardIndex(col, row); var index = this.getCardIndex(col, row);
this.cards[index].show(); this.cards[index].show();
@@ -428,6 +421,11 @@ var Game = {
+ this.openCardInfoIndex[1] + ", " + this.openCardInfoCharacter[1] + ")"); + this.openCardInfoIndex[1] + ", " + this.openCardInfoCharacter[1] + ")");
}, },
showReservedCardInfo: function() {
console.log(this.reservedHideCard[0]);
console.log(this.reservedHideCard[1]);
},
isCardSelectEdgeActivated: function() { isCardSelectEdgeActivated: function() {
return this.isCardSelected; return this.isCardSelected;
}, },
@@ -453,59 +451,45 @@ var Game = {
return true; return true;
}, },
clearOpenedTwoCards: function() { clearSameTwoCards: function() {
var card1 = this.cards[this.openCardInfoIndex[0]]; var card1 = this.cards[this.openCardInfoIndex[0]];
this.resetOpenCardInfo(card1.getColumnNo(), card1.getRowNo()); this.resetOpenCardInfo(card1.getColumnNo(), card1.getRowNo());
this.reservedHideCard[0] = card1; this.reservedHideCard[0] = card1;
card1.setActive(false); card1.setActive(false);
card1.startWaitAndHideAnimation();
var card2 = this.cards[this.openCardInfoIndex[1]]; var card2 = this.cards[this.openCardInfoIndex[1]];
this.resetOpenCardInfo(card2.getColumnNo(), card2.getRowNo()); this.resetOpenCardInfo(card2.getColumnNo(), card2.getRowNo());
this.reservedHideCard[1] = card2; this.reservedHideCard[1] = card2;
card2.setActive(false); card2.setActive(false);
card2.startWaitAndHideAnimation();
// to do : show card 2 (flip to front) and wait 1 sec
// to do : hide card 1, card 2
// to do : add score, score point animation
var tempPlusScore = new PlusScore(card2.x, card2.y, this.getScore()); var tempPlusScore = new PlusScore(card2.x, card2.y, this.getScore());
this.plusScoreGroup.add(tempPlusScore); this.plusScoreGroup.add(tempPlusScore);
// card1.hide();
// card2.hide();
var hideOpenedCardTimeEvent = game.time.events.add(Phaser.Timer.SECOND * 0.5, this.hideOpenedCard, this);
this.gameTimeEvents[this.gameTimeEvents.length + 1] = hideOpenedCardTimeEvent;
},
hideOpenedCard: function() {
this.reservedHideCard[0].hide();
this.reservedHideCard[1].hide();
this.scoreManager.plusScore(this.getScore()); this.scoreManager.plusScore(this.getScore());
// to do : check clear stage var checkStageClearedEvent = game.time.events.add(Phaser.Timer.SECOND * 0.5, this.checkStageCleared, this);
this.gameTimeEvents[this.gameTimeEvents.length + 1] = checkStageClearedEvent;
},
checkStageCleared: function() {
this.clearedCardCount += 2; this.clearedCardCount += 2;
if(this.activatedCardCount == this.clearedCardCount) if(this.activatedCardCount == this.clearedCardCount)
this.startNextStage(); this.startNextStage();
}, },
resetOpenedCard: function() { resetDifferentTwoCards: function() {
var card1 = this.cards[this.openCardInfoIndex[0]]; var card1 = this.cards[this.openCardInfoIndex[0]];
if(card1 == null) if(card1 == null)
return; return;
this.resetOpenCardInfo(card1.getColumnNo(), card1.getRowNo()); this.resetOpenCardInfo(card1.getColumnNo(), card1.getRowNo());
card1.flipToBack(); card1.startWaitAndFlipToBackAnimation();
var card2 = this.cards[this.openCardInfoIndex[1]]; var card2 = this.cards[this.openCardInfoIndex[1]];
if(card2 == null) if(card2 == null)
return; return;
this.resetOpenCardInfo(card2.getColumnNo(), card2.getRowNo()); this.resetOpenCardInfo(card2.getColumnNo(), card2.getRowNo());
card2.flipToBack(); card2.startWaitAndFlipToBackAnimation();
},
resetOpenedTwoCards: function() {
var resetOpenedCardTimeEvent = game.time.events.add(Phaser.Timer.SECOND * 0.5, this.resetOpenedCard, this);
this.gameTimeEvents[this.gameTimeEvents.length + 1] = resetOpenedCardTimeEvent;
}, },