所以,我正在嘗試簡單的紙牌遊戲。我有player
「類」與draw
函數,並且公共成員deck
和hand
,都是數組。JavaScript卡片遊戲玩家手的體系結構
我需要從甲板上抽出一張牌,放在手中,並顯示在玩家「手」區域。我擔心我「翻轉」和「播放」按鈕的方式(通過關閉)。
下面是代碼:
littlegame.player.prototype.draw = function() {
if (this.canDrawCard()) {
var card = this.deck.draw(); // this.deck is Array
//Create card element on the playfield
var card_object = $('<div class="card"></div>').append($('<span class="attack">' + card.attack + '</span>')).append($('<span class="defence">' + card.defence + '</span>'));
// Add controls to card
if (this.playerid == 1) {
var flipper = $('<span class="flip">Flip</span>');
flipper.click(function(){
card.flip();
});
var actuator = $('<span class="play">Play</span>');
console.log('Loading actuator closure with id ' + this.playerid + ' and name ' + this.playername);
var player = this;
var old_hand = this.hand.slice(0); // Store a copy of old hand. Stupid trick, i know. It doesn't work
actuator.click(function(){
card.play(player.playerid);
delete card;
player.hand = old_hand;
});
card_object = card_object.append(flipper).append(actuator);
}
this.element.append(card_object);
card.element = card_object;
// Put card in hand
this.hand.push(card);
}
};
我需要的是一個方法來調用card.play()
和card.flip()
上相應的按鈕按下,用card.play
知道在手卡位,將卡取出。我怎樣才能做到這一點?
嗯,如果我們說,我將第三張卡片從手中拼接起來,剩下的卡片不會從1開始移動到開頭嗎? '卡片.delete'很酷,我現在就試試。 – 2009-12-16 10:15:34
是的,但是因爲我手上沒有你的設計文件,而且我不知道你在玩什麼紙牌遊戲,所以我不得不猜測你想要什麼 – Breton 2009-12-16 12:31:58
實際上,我沒有設計文檔:)問題是存儲持久鏈接到數組中的對象,所以當數組元素被刪除時它們不會停止工作。 無論如何,似乎你的方法實際上運作良好。謝謝 :) – 2009-12-16 12:53:09