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

めくった2枚のカードが同じナンバーだった時の処理
前回見ていただいたように,めくった2枚のカードが同じナンバーだった時は,phase4aに処理が移る。Phase4aでは,"GoodJob!!"のメッセージを表示し,全て揃い場にカードがなくなったか否かをチェックする。
(1)"GoodJob!!"メッセージの表示
"GoodJob!!"メッセージ自体はイメージシンボルとして作成し,それをモーション・トゥイーンで拡大する。
- 実際のflaファイルGameCard.fla(Flash CS3用のもの,Flash 8用のもの)
(2)確認ボタンの押下時のアクション
"GoodJob!!"メッセージ表示後,次のフェーズに移行するために,確認ボタンを置き,オブジェクト・アクションを記述する。
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"に移す。この時,忘れずに選択枠を非表示にすること。

