1

私はフラッシュ「メモリー」ゲームを作成しています。2 枚の等しいカードを発見するというアイデアです。すべてのカードが発見されるまでの秒数をカウントするウィンドウの上部に「タイマー」を追加する必要があります。

これが私のコードです:

package
{
    import flash.display.MovieClip;
    import Card;
    import Boarder;
    import BlueBoard;
    import flash.events.MouseEvent;
    import RedBoard;
    import Snow;

    public class MemoryGame extends MovieClip
    {
        private var _card:Card;
        private var _boarder:Boarder;
        private var _blueBoard:BlueBoard;
        private var _cardX:Number;
        private var _cardY:Number;
        private var _firstCard:*;
        private var _totalMatches:Number;
        private var _currentMatches:Number;
        private var _redBoard:RedBoard;
        private var _snow:Snow;
        private var _cards:Array;
        public var  _message:String;

        public function MemoryGame()
        {
            _cards = new Array();
            _totalMatches = 4;
            _currentMatches = 0;
            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 + 50;
                _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 + 50;
                _card.addEventListener(MouseEvent.CLICK, checkCards);
                _cards.push(_card);
            }

            _cardX = 45;
            _cardY = _card.height + 30;

            for(var k:Number = 0; k < 2; k++)
            {
                _card = new Card();
                addChild(_card);
                _redBoard = new RedBoard();
                _card.setType(_redBoard);
                _card.x = _cardX;
                _card.y = _cardY;
                _cardX += _card.width + 50;
                _card.addEventListener(MouseEvent.CLICK, checkCards);
                _cards.push(_card);
            }

            for(var l:Number = 0; l < 2; l++)
            {
                _card = new Card();
                addChild(_card);
                _snow = new Snow();
                _card.setType(_snow);
                _card.x = _cardX;
                _card.y = _cardY;
                _cardX += _card.width + 50;
                _card.addEventListener(MouseEvent.CLICK, checkCards);
                _cards.push(_card);
            }

            randomizeCards(_cards);
        }

        private function checkCards(event:MouseEvent):void
        {
            event.currentTarget.removeEventListener(MouseEvent.CLICK, checkCards);

            if(_firstCard == undefined)
            {
                _firstCard = event.currentTarget;
            }
            else if(String(_firstCard._type) == String(event.currentTarget._type))
            {
                trace("match");
                _message = "match";
                message_txt.text = _message;
                _firstCard = undefined;
                _currentMatches ++;
                if(_currentMatches >= _totalMatches)
                {
                    trace("YOU WIN !!!");
                    _message = "YOU WIN !!!";
                    message_txt.text = _message;
                }
            }
            else
            {
                trace("wrong");
                _message = "wrong";
                message_txt.text = _message;
                _firstCard.gotoAndPlay("flipBack");
                event.currentTarget.gotoAndPlay("flipBack");
                _firstCard.addEventListener(MouseEvent.CLICK, checkCards);
                event.currentTarget.addEventListener(MouseEvent.CLICK, checkCards);
                _firstCard = undefined;             
            }
        }

        private function randomizeCards(cards:Array):void
        {
            var randomCard1:Number;
            var randomCard2:Number;
            var card1X:Number;
            var card1Y:Number;

            for(var i:Number = 0; i < 10; i++)
            {
                randomCard1 = Math.floor(Math.random() * cards.length);
                randomCard2 = Math.floor(Math.random() * cards.length);

                card1X = cards[randomCard1].x;
                card1Y = cards[randomCard1].y;
                cards[randomCard1].x = cards[randomCard2].x;
                cards[randomCard1].y = cards[randomCard2].y
                cards[randomCard2].x = card1X;
                cards[randomCard2].y = card1Y;
            }
        }
    }
}

編集: もう1つ質問があります。このゲームを PHP に追加するとき、ユーザー名と彼の時間をデータベースに追加するにはどうすればよいですか? アクション スクリプト (swf ファイル) でコードを記述する必要がありますか、それとも後で php で行うことができますか? つまり、PHPでは、swfファイルから時間を取得してデータベースに書き込むために任意の方法を使用できますか?

私たちを手伝ってくれますか?どうもありがとうございました。

4

1 に答える 1