私はフラッシュ「メモリー」ゲームを作成しています。2 枚の等しいカードを発見するというアイデアです。そして、すべてのカードを削除して新しくスポーンする「再試行」ボタンを作成する必要があります。
主なゲーム機能は次のとおりです。
public function MemoryGame()
{
tryAgain.addEventListener(MouseEvent.CLICK, darKarta);
timer = new Timer(1000); //create a new timer that ticks every second.
timer.addEventListener(TimerEvent.TIMER, tick, false, 0, true); //listen for the timer tick
txtTime = new TextField();
addChild(txtTime);
tmpTime = timer.currentCount;
timer.start();
_cards = new Array();
_totalMatches = 18;
_currentMatches = 0;
createCards();
}
createCards 関数は次のとおりです。
private function createCards():void
{
_cardX = 45;
_cardY = 10;
for(var i:Number = 0; i < 2; i++)
{
_card = new Card();
addChild(_card);
_boarder = new Boarder();
_card.setType(_boarder);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 5;
_card.addEventListener(MouseEvent.CLICK, checkCards);
_cards.push(_card);
}
for(var j:Number = 0; j < 2; j++)
{
_card = new Card();
addChild(_card);
_blueBoard = new BlueBoard();
_card.setType(_blueBoard);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 5;
_card.addEventListener(MouseEvent.CLICK, checkCards);
_cards.push(_card);
}
for(var r:Number = 0; r < 2; r++)
{
_card = new Card();
addChild(_card);
_penktas = new Penktas();
_card.setType(_penktas);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 5;
_card.addEventListener(MouseEvent.CLICK, checkCards);
_cards.push(_card);
}
そして、ここにremoveCard関数があります:
function removeCards(e:MouseEvent):void
{
//for(var iv:Number = 0; iv < 18; iv++)
{
addEventListener(Event.ENTER_FRAME, remCards);
//}
}
function remCards(evt:Event):void
{
if (contains(_card)) {
removeChild(evt.currentTarget._card);
}
}
しかし、それは最後のカードだけを削除します。それらをすべて削除する方法がわかりません。何かアイデアはありますか?ありがとうございました。