ケータイFlashゲーム制作レクチャー

第10回 カードゲームレクチャー(4) いよいよ完成!!

この記事を読むのに必要な時間:およそ 1.5 分

"神経衰弱"ついに完成!

今回はゲームの仕上げだよ!めくった2枚のカードが揃っていた時,揃っていなかった時,各場合のリアクションを作ってゲームを盛り上げるピピ!そして,もうひとつ。プログラマーズコラムもあるぞ!最後まで読むピピ~ィ!

めくった2枚のカードが同じナンバーだった時の処理

前回見ていただいたように,めくった2枚のカードが同じナンバーだった時は,phase4aに処理が移る。Phase4aでは,"GoodJob!!"のメッセージを表示し,全て揃い場にカードがなくなったか否かをチェックする。

(1)"GoodJob!!"メッセージの表示

"GoodJob!!"メッセージ自体はイメージシンボルとして作成し,それをモーション・トゥイーンで拡大する。

Fla画面1 モーション・トゥイーンによる"GoodJob!!"のアニメーション

Fla画面1 モーション・トゥイーンによる

(2)確認ボタンの押下時のアクション

"GoodJob!!"メッセージ表示後,次のフェーズに移行するために,確認ボタンを置き,オブジェクト・アクションを記述する。

Fla画面2 次のフェーズに移行するためのスクリプトの記述場所

Fla画面2 次のフェーズに移行するためのスクリプトの記述場所

List1 確認ボタン用オブジェクト・アクションとなるスクリプト

//揃った時
on (keyPress "5") {
    sameCount++;    //揃った回数を1加算・・・・・・①
    //揃ったカードを非表示・・・・・・②
    tellTarget("CardPlay/Card"add selectCard1){
        gotoAndStop( "NULL");
    }
    tellTarget("CardPlay/Card"add selectCard2){
        gotoAndStop( "NULL");
    }
    //めくったカードのインデックス初期化・・・・・・③
    selectCard1 = -1;
    selectCard2 = -1;
    if(sameCount<4){    //まだカードが残っている時・・・・・・④
       gotoAndPlay("phase3");
       //次の候補インデックスを検索
       flg=0;
       do{
           targetIndex++;
           targetIndex%=8;
           flg = Eval("CardLook" add targetIndex);
       } while(flg);
       //候補インデックスに対応するカードに候補枠を付加
       tellTarget("Target1"){
           gotoAndStop( ../:targetIndex+1);  
       }
       //2枚目の候補枠を非表示にする
       tellTarget("Target2"){
           gotoAndStop( 1);  
       }
    }
    else{      //もうカードが残っていない時・・・・・・⑤
           gotoAndPlay("phase5a")
           //候補枠を非表示にする
           tellTarget("Target1"){
               gotoAndStop("NULL");  
           }
           tellTarget("Target2"){
               gotoAndStop( 1);  
           }
    }
}

List1についてポイントとなる所に項番を付した。この順に解説していこう。

  •  2枚のカードのナンバーが揃った回数を保存するカウンター変数sameCountに1を加算する。

  •  Cardxx1とCardxx2(xx1とxx2はともにめくられたカードのインデックス)の表示ヘッドを,何もイメージのないNULLフレームに移動する。これにより,見かけ上,場よりカードが消える。

  •  めくられたカードのインデックスを保存する変数SelectCard1および2の値を-1にて初期化する。

  •  式sameCount<4の解が真であれば,場にまだカードが残っているという事である。この場合,gotoAndPlayにて,次に再生するフレームを"phase3"と登録し,次の候補インデックスを検索する。これは,前回の「選択候補枠移動の仕掛け」にて解説した同処理と同じロジックである。

  •  逆に場にもうカードが残っていない場合,再生ヘッドは"phase5a"に移す。この時,忘れずに選択枠を非表示にすること。

著者プロフィール

西村直樹(にしむらなおき)

クリエイティブスタジオ Studio無限界 代表。アニメーターを経て,ゲームクリエイターとなる。ゲーム制作では,企画シナリオ,ディレクション,絵関連など幅広くこなし,ゲームクリエイターとして現在で19年となる。また,ゲームスクール,アミューズメントメディア総合学院にて,創立年から企画系講師を行い,クリエイター育成にも携わっている。現在は,マネジメントを行いつつ,コンシューマゲーム,ケータイコンテンツ,書籍執筆,その他様々なプロジェクトを進めている。

Studio無限界
URLhttp://www.mugenkai.com/


藤田和久(ふじたかずひさ)

プログラマ/テクニカルスーパーバイザー。メインフレームと呼ばれる大型コンピュータのシステム開発から,WebサイトのCGI,そしてケータイFlashに至るまで様々な環境のプログラミングに携わる。現在はStudio無限界の活動の傍ら,都内複数の専門学校において講師として,ゲーム制作,Webサイト制作,システムエンジニアリングなどの授業を担当。 また,Studio無限界とは別にFMS(個人)として,システムエンジニアリングの分野でも 活動している。

Studio無限界
URLhttp://www.mugenkai.com/

コメント

コメントの記入