FlashLite1.1でスロットゲーム2

このQ&Aのポイント
  • FlashLite1.1でスロットゲーム2の改良方法をご教授いただけませんか?
  • フラグと変数を使用して、特定の組み合わせが揃った時にアクションを起こす方法について教えてください。
  • 完成したスロットゲームをより洗練させるための助言をお願いします。
回答を見る
  • ベストアンサー

flashlite1.1でスロットゲーム2

以前 http://okwave.jp/qa5134769.html このような質問をさせて頂いたものです。 この時は、取りあえず揃ったら何かアクションを 起こすということを目標にして何とかご助言いただき 完成にこぎつけたのですが、現在これを少々いじって 各種子役に対応してアクションを起こす… ということをしたいのですが勉強不足のため苦戦しています。 (例:ベルが揃えば『ベル!』、7が揃えば『7!』と出す) ------------------------------------ // フラグ1 の値を true にする flag1 = true; // もし フラグ1~3 が全て true で if (flag1 && flag2 && flag3) { // r_mc1~3 内の全ての変数 name の値が同じであれば if (r_mc1/:name eq r_mc2/:name && r_mc2/:name eq r_mc3/:name) { trace("そろった!"); } } ------------------------------------ この部分をうまく弄れば出来そう…というのは検討が 付くのですが、、 大変恐縮ですが、再度ご助言いただけないでしょうか。 よろしくお願い致します。 何か必要な情報があれば追記させていただきます。

  • Flash
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

とりあえず if-else文 を加えれば簡単にできるでしょう。 --------------------------------------------- // r_mc1~3 内の全ての変数 name の値が同じであれば if (r_mc1/:name eq r_mc2/:name && r_mc2/:name eq r_mc3/:name) { trace("そろった!"); } ---------------------------------------------   ↓変更(付け足し)↓ --------------------------------------------- // r_mc1~3 内の全ての変数 name の値が同じであって if (r_mc1/:name eq r_mc2/:name && r_mc2/:name eq r_mc3/:name) { // なおかつ r_mc1の変数 name の値が "bell" であれば if (r_mc1/:name eq "bell") { trace("ベル!"); }else if (r_mc1/:name eq "seven") { trace("7!"); } } --------------------------------------------- 以降,else if をどんどん付け足して行けばできます。 ダラダラした else if を避けたいという場合は, _root などに 「変数=値」(例: bell="ベル!") を用意しておいて eval関数 を使って ハッシュ的 アクセス参照をする方法もありますが。 「eval()| actionscriptリファレンス」 http://nsflash.com/action/action0081.html

akk0123
質問者

お礼

ご回答頂き、ありがとうございます。 BlurFiltan様にはまたも助けられてしまい 申し訳ございません。 早速教えていただいた記述を試したところ確かに 各子役に対応したアクションを起こせました。 が、一つ問題が出てしまいました。 それは絵柄が揃わなかった時のアクションです。 今までは -------------------------------------------------- // r_mc1~3 内の全ての変数 name の値が同じであれば if (r_mc1/:name eq r_mc2/:name && r_mc2/:name eq r_mc3/:name) { trace("そろった!"); } else { gotoAndPlay("リスタート") } -------------------------------------------------- という感じでelseを使用して揃わなかった時 最初に戻す形でリプレイさせていました。 この時は、 (絵柄が揃った)に対しelseで(揃わなかった時)と判断させていたので うまくいったのでしょう。 しかし今回 -------------------------------------------------- if (r_mc1/:name eq r_mc2/:name && r_mc2/:name eq r_mc3/:name) { // なおかつ r_mc1の変数 name の値が "bell" であれば if (r_mc1/:name eq "bell") { trace(ベル); } else if (r_mc1/:name eq "seven") { trace(7); } else { gotoAndPlay("リスタート") } } -------------------------------------------------- にするとベルと7以外の絵柄が来た時に… と解釈されるのか上手く動作してくれません。 実際はelse ifでベル、BAR、オレンジ、7の4種類の絵柄を操作 しています。 これにelseを加えると、揃わなくてもなぜか第3リールで 止まった絵柄のおめでとうがでてしまいます。 長文になりましたが 再度ご確認いただけないでしょうか。 よろしくお願い致します。

akk0123
質問者

補足

補足欄で失礼します。 あれからいろいろ弄っていたところ elseの位置が悪かったことに気づき、 直したところ完成いたしました! ので今回の質問についてはこれで〆させていただきます。 BlurFiltan様には感謝の気持ちでいっぱいです。 本当にありがとうございました!

関連するQ&A

  • ちょっとした記述に関する疑問

    どちらでもいいような内容かもしれませんが、よろしくお願いします。 ---------------------------------- flag = false; if(num < 0) { num *= -1; flag = true; } //numを使って何かの処理 ~~ if(flag) { //処理 num *= -1; } ---------------------------------- 例として、変数numが負だったらフラグをtrueにして、 最後にそのフラグをもとに処理を行うという一連の動作があった場合に、 if(num < 0) { num *= -1; flag = true; } というふうにフラグを後に記述するのか if(num < 0) { flag = true; num *= -1; } というふうにフラグを先に記述するのか がふと気になったのですが、みなさんはどちらでやっているのでしょうか?

  • 動的な数があるインスタンスに処理をさせたい

    お世話になります。 actionscript3.0で作成しています。 インスタンスが、「mc_1,mc_2,mc_3」が既にステージ上にある状態で、 あるボタンを押すと flag=1がきたら:mc_1.y+5; flag=2がきたら:mc_2.y+5; flag=3がきたら:mc_3.y+5; と、ボタンを押す度に、flagの値によって、動かすmcを変えたいと思っています。 しかしながら、上記の例では、mcは3個だけですが、こちらのmcの数は、 変わります。 そこで、mcのインスタンス名を 「mc_」+「番号」 というルールずけにして、  var NAME="mc_";  NAME=NAME+flag;  NAME.y+5; としたのですが、エラーが出て動きません。。。 どのようにすれば、mcの数が何個になろうが決まった関数で処理を 完了させることができるのでしょうか? お手数ですがよろしくお願い致します。

    • ベストアンサー
    • Flash
  • 条件分岐でelseは使うべきですか?

    言語は問わず1と2のようなやり方があるのですが、どちらがいいとかあるのでしょうか? 1の方が記述量が少ないけど、2の方が可読性が高い。 ケースバイケースなのかもしれませんが、それぞれのメリットデメリットご教示いただけますでしょうか? よろしくお願いいたします。 1 $flag = false; if ($action == 'edit') { $flag = true; } 2 if ($action == 'edit') { $flag = true; } else { $falg = false; }

    • ベストアンサー
    • PHP
  • もしも新規Excelファイルを開いてる場合は閉じる

    Excel2003です・ ユーザーが新規Excelファイル(book1)かテスト用ファイルを開いている場合は閉じる処理を考えております。 Option Explicit Dim ws As Workbook, flag As Boolean Private Sub Workbook_Open() For Each ws In Workbooks If ws.Name = "Book1" Then flag = True Next ws If flag = True Then Workbooks("Book1.xls").Close   Else   End IF For Each ws In Workbooks If ws.Name = "テスト用.xls" Then flag = True Next ws If flag = True Then Workbooks("テスト用.xls").Close   Else   End IF End Sub このコードだとBook1を開いているのに、Trueで拾ってくれません。 ws.Name = "Book1.xls"にしても同じです。 どこかおかしい部分があるのでしょうか?

  • jQueryでリスト項目の表示・非表示を切りかえる

    jQueryに詳しい方教えてください。 下記のようなHTMLがあって、 jQueryを使って<li>要素の表示/非表示を切り替えたいのです。 ---------------- HTMLスクリプト <ul class="test">  <li>項目1</li>  <li>項目1</li>  <li>項目1</li> </ul> 切り替えるタイミングはxmlのデータ内にflagを立てています。 flagの値は取得できました。(確認済み) 仕様としては、flagの値が 0の時は→<li>要素の1つ目と2つ目を表示させる。 1の時は→<li>要素の3つ目のみを表示させる。 2の時は→<li>要素のすべてを表示させる。 ということをしたいのです。 ですが、なぜかうまくいきません。 以下のように書きました。 if(flag==0){  $(".test li:eq(2)").hide(); }else if(settlementflag==1){  $(".test li:eq(0)"), .test li:eq(1)").hide(); }else if(settlementflag==2){  //何もしない }; そもそもこうゆう書き方で合っているのしょうか? jQueryを勉強したてで、恥ずかしいばかりですが、 ご教授のほど宜しくお願いいたします。

    • ベストアンサー
    • AJAX
  • attachMovieでのインスタンス名

    以下のようなスクリプトを書いているのですが、 traceの値がすべてmenu_mcとなってしまいます。 インスタンス名をmenu1_mc,menu2_mc,menu3_mc,・・・としたいのですが、どうすればいいのでしょうか? i = 10; for(y = 0; y < i; y++) { trace(y); m = y+1; obj = _root.attachMovie("menu", "menu"+m, y); obj._x = 30; obj._y = 70*y; trace(this._name); } 環境はFlashCS3、ActionScript2.0です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 3ビットのフラグを持つ2個の変数の組み合わせによる分岐の上手な書き方

    お世話になります。 C言語において、3つの状態を持っている変数で状態の組み合わせによって分岐するプログラムを作りたいと思っています。 3ビットのフラグによって2進数で001,010,100の3個のどれかの状態であるとして、以下の条件で分岐させるさせたいです。 ・2個とも同じ状態のとき ・片方が001,010で、もう一方が100 ・片方が001で、もう一方が010 自分では以下のように書いたのですが、条件式もっと簡潔に書くことはできないでしょうか?よろしくお願いいたします。 #include<stdio.h> typedef struct{ int name;//識別番号 unsigned int flag:3;//状態を表すフラグ }Status; int main(void) { Status a,b;//例として2変数のみ定義 a.name=10; a.flag=1; b.name=20; b.flag=2; if(!(a.flag^b.flag)){ printf("2個とも同じ状態のとき\n"); } else if( ( (a.flag&1 || a.flag&2) && b.flag&4 ) || ( a.flag&4 && (b.flag&1 || b.flag&2 ) ) ){ printf("片方が001か010で、もう一方が100\n"); } else if( (a.flag&1 && b.flag&2) || (a.flag&2 && b.flag&1) ){ printf("片方が001で、もう一方が010\n"); } }

  • Excel VBA 指定シートの有無確認

    指定した名前のシートがあるかないか判断させてますが、 以下のやりかたでは、 グラフ作成したシートを認識してくれません。 そのようにすれば良いでしょうか? Dim ws As Worksheet, flag As Boolean For Each ws In Worksheets If ws.Name = "シート" Then flag = True  Next ws If flag = True Then  msgbox "あります  Else  Sheets.Add  ActiveSheet.Name = "シート" End If

  • 一度に複数の値を取得できる乱数ってありますか?

    PHP Version 5.1.6を使っています。 例えば、1から10まで整数の中から値が重複しないように ランダムに8個選びたいような時で、自分が思いつた選び方は、 for($i=0; $i<8; $i++){ $r = rand(1, 10); $flag = false; for($j=0; $j<Count($list); $j++){ if($r == $list[$j]){ $flag = true; break; } } if($flag){ $i--; continue; } $list[] = $r; } print_r($list); なんですが、これだと効率が悪いような気がします・・・ そこで重複しないようにランダムに選べる乱数や またはそういう関数はあるのでしょうか?

    • 締切済み
    • PHP
  • ページにジャンプできなくなってしまった。

    テキストフィールドごと違うパラメータを受け取るためにフラグを設定したら色情報を取得するcolorparet.jspにジャンプできなくなってしまいました。試行錯誤していますが解決できません。プログラムは下記のとおりです。問題と思われるところです。 <% String Flag=(String)request.getParameter("hiddenFlag1"); String cs=""; String cs1="";     ・     ・ String cs12=""; String cs13="";%> <% if(Flag!=null && Flag.equals("0")){ cs=(String)request.getParameter("cn"); }else if(Flag!=null && Flag.equals("1"){ cs1=(String)request.getParameter("cn");          ・          ・          ・ }else if(Flag!=null && Flag.equal("13"){     cs13=(String)request.getParameter("cn"); }%> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <SCRIPT language="JavaScript"> function syori(flag){ document.form1.hiddenFlag1.value=flag; document.form1.action="index.jsp"; document.form1.submit(); } </SCRIPT> </head> <form name=form1 method=post action=""> <INPUT type=hidden name=hiddenFlag1 value="">

専門家に質問してみよう