- ベストアンサー
脱出ゲームでのアクションスプリクトについての質問
- 脱出ゲームを作る際、壁にはめた玉の順番によって脱出するアクションスプリクトの書き方について教えてください。
- 現在、脱出ゲームにおいて玉のムービークリップと壁の穴のムービークリップを作成していますが、具体的なアクションスプリクトの解説がなく、どのように書けばよいのか分かりません。
- アクションスプリクトの書き方を教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- FLASH内MCの表示・非表示
どなたか教えて下さい。FLASHにて外部テキストを読み込み、その読み込む文によってMCを表示・非表示させたくて下記のようにソースを書いたのですが、変数のw03の部分をakairo以外の文字にしてもaka(MC)が表示されてしまいます。。。 akairo意外の文字にした場合、ao(MC)が表示になるようにしたいのですが、どなたか教えて頂けると幸いです。よろしくお願いします。 this.stop(); System.useCodepage = true; g01.loadVariables("test.txt"); //外部読み込み if (g01.w03 == akairo) { //もしg01内のダイナミックテキストw03の読み込んだ文字が akairo なら aka._visible = true; //aka(MC)を表示 ao._visible = false; //ao(MC)を非表示 }else{ //そうでなかったら ao._visible = true; //ao(MC)を表示 aka._visible = false; //aka(MC)を非表示 } 外部テキスト(test.txt)は w01=ワード01&w02=ワード02&w03=akairo になっています。
- ベストアンサー
- Flash
- ムービークリッププロパティの変更
こんにちは。 ムービークリップA_mcをロールオーバーした時にムービークリップB_mcを表示ロールアウトした時にムービークリップB_mcを非表示にしたいのです。 まずはムービークリップB_mcの_alphaを100にするスクリプトを記述しようとしています。 B_mcはアニメーションですでに_alpha=0でステージにおかれています。 A_mcに on(rollOver){ _root.B_mc._alpha=100; } on(rollOut){ _root.B_mc._alpha=0; } と記述したのですが、表示されませんでした。 試しにと on(rollOver){ _root.B_mc._visible=true; } on(rollOut){ _root.B_mc._visible=false; } としてもだめでした・・・ すみません。原因がよくわからず対処方法もわかりません・・・何方かご教授頂けないでしょうか? よろしくお願いします。
- ベストアンサー
- Flash
- FLASHで脱出ゲームを作る時の、アクションスプリクトが分かりません
ゲットした4つの色違いの玉を、壁の穴に当てはめて、 並び順が正解なら脱出。。!というシーンを作りたいのですが、 アクションスプリクトの本を探してもなかなか見つからず 試行錯誤を繰り返してはエラーになっています どなたか教えてください(_) onclip movie(EnterFlame)と if、else if、elseを使って、なんとかできそうな気がしたんですが。。 其の場合、同じ色の玉がいくつも表示されたり、クリックしても反応しなくなりました 製作環境は、FLASH CS3のアクションスプリクト2.0です
- ベストアンサー
- Flash
- perlでくじ引きプログラムを作りたい
箱の中に、 akaが14個 aoが21個 kiiが443個 以下続く(__END__以下) という様にさまざまな色のボールが箱に入っているとします。 そこから、80個だけ取り出した場合、 aka=4 ao=9 aka=4 以下続く という様に表示させたいのですがどのようにすればよいでしょうか? ネット上で見つけた色々なプログラムをくっつけてはみたのですがいまいちです。 特に、ballの数がakaが14個ではなく、akaが1000000個、ao300000個のように膨れるとメモリも多く要りそうですし、時間もかかってしまいます・・・ もっとうまくやるやり方があると思うのですが、どうしても思いつきません。 どなたか、教えていただけ無いでしょうか? 宜しくお願い致します。 #!/usr/bin/perl print "Content-Type: text/plain\n\n"; my $cnt = 80; my ($line,@array,@data,$data); foreach $line (<DATA>){ @array = split(/\t/,$line); for(1..$array[2]){ #ここの部分がかなり問題あり・・・ $data[$datacnt++]=$line; } } srand; for (my $i = @data; --$i; ) { my $j = int rand ($i + 1); next if $i == $j; @data[$i, $j] = @data[$j, $i]; } foreach(0..($cnt-1)){ #とりあえず表示させる。 print $data[$_]; } #同名を集計して表示させるプログラムを作る予定 #空白はタブ区切りです。 __END__ ball aka 14 ball ao 21 ball kii 443 ball midori 112 ball shiro 122 ball orenji 1
- ベストアンサー
- CGI
- ボタンをクリックでムービーを表示させストップ、その際、他のボタンは関係なく動いている
FLASH MX 2004を使っているAction Script初心者です。 http://oshiete1.goo.ne.jp/qa4288529.html で前回の問題は解決できたのですが、新たな問題が発生しました。 _root ├b01(モーショントゥイーンなどで動くボタン) ├m01(表示/非表示 が変わるムービークリップ) ├b02(モーショントゥイーンなどで動くボタン) └m02(表示/非表示 が変わるムービークリップ) 動いているb01というボタンをクリックすると、m01というムービーが表示され、b01とm01はストップし、m01をクリックするとm01は消え、b01が再度動き出し、その間はb02は関係なく動いているというようにしたいのですが、全体がストップ、全体が動き出す、もしくはストップしないというようになってしまいます。 b02はb01と同様にクリックすると、m02というムービーが表示され、b02とm02はストップし、m02をクリックするとm02は消え、b02が再度動き出し、その間b01は関係なく動いているという仕様です。 【b01】 on (release) { _root.m01._visible = true; _root.m01.stop(); _root.b01.stop(); } 【m01】 onClipEvent (load) { this._visible = false; } on (release) { _root.m01._visible = false; _root.b01.play(); } 【b02】 on (release) { _root.m02._visible = true; _root.m02.stop(); _root.b02.stop(); } 【m02】 onClipEvent (load) { this._visible = false; } on (release) { _root.m02._visible = false; _root.b02.play(); } いろいろと間違っているかも知れませんが、ご教授ください。 よろしくお願い致します。
- ベストアンサー
- Flash
- ActionScriptでの繰り返し記述をすっきりまとめたい
FLASHのActionScriptを勉強中です。 繰り返し同じ様なものを記述する場合、for文か何かを使うと思うのですが、以下の場合はどうすればいいのでしょうか? *プログラムの内容は複数のインスタンスを表示してクリックで順次消えるというものです。インスタンスに記述ではなく、フレームに記述しています。(イベントハンドラメソッド) this.b1.onRelease = function(){ _root.b1._visible = false; }; this.b2.onRelease = function(){ _root.b2._visible = false; }; this.b3.onRelease = function(){ _root.b3._visible = false; }; 以下繰り返し… お詳しい方、よろしくお願いいたします。
- ベストアンサー
- Flash
- ポップアップを一定時間、またはマウスが乗っている間表示させておく
スクリプトに詳しくないので、教えていただきたいです。 画面上のあるエリアにマウスをのせるとポップアップウィンドウのようなものが表示され、 その中にあるボタンをクリックすると外部swfを読み込むという仕組みを 作りたいと思っています。 下に書いてあるスクリプトでポップアップが出てくるようにしたのですが、 その次がわからなくて困っています。 (1)マウスがエリアから外れても、一定時間(例えば1秒とか)ポップアップを 表示したままにしたい (2)ポップアップにマウスがのっている間は表示させておきたい (1)はエリア部分とポップアップが離れている場合(といってもほんの少しです)を 考えてのことです。 いい方法がありましたらぜひ教えてください。 どうぞよろしくお願いいたします。 エリア部分に書いたActionScript --------------------------------------------------------------- onClipEvent (load) { _root.popup._visible = false; } onClipEvent (enterFrame) { if (this.hitTest(_root._xmouse,_root._ymouse,1)) { _root.popup._visible = true; } else { _root.popup._visible = false; } } ---------------------------------------------------------------
- ベストアンサー
- Flash
- ムービーをクリックしてボタンを動かしたい
FLASH MX 2004を使っているAction Script初心者です。 動いているb01というボタンをクリックすると、m02というムービーが表示され、b01とm02はストップし、m02をクリックするとm02は消え、b01が再度動き出すということをしたいのですが、b01とm02のストップまではできたのですが、ストップしたb01を動かすことができません。 【b01】 on (release) { _root.m02._visible = true; stop(); } 【m02】 onClipEvent (load) { this._visible = false; } on (release) { _root.m02._visible = false; _root.b01.play(); } いろいろと間違っているかも知れませんが、よろしくお願い致します。
- ベストアンサー
- Flash
- マウス位置によって画像を切り替える
ステージ上のマウス位置を読み取り、その座標によって画像を切り替えるFlashを作成中なのですが、上手くいきません。 流れとしては 画像のファイルを読み込む ↓ 画像のファイル分だけムービークリップを作成 ↓ マウスの座標に応じて画像(ムービークリップを切り替える) というものです。 下記のようにかいています。 ●1フレーム目 //各画像の変数読み込み jpg1 = "test1.jpg"; jpg2 = "test2.jpg"; jpg3 = "test3.jpg"; jpg4 = "test4.jpg"; //初期配置 //空のMCを作成し、その中に画像変数を読み込ませる。 _root.createEmptyMovieClip("image_mc0",4); _root.createEmptyMovieClip("image_mc1",3); _root.createEmptyMovieClip("image_mc2",2); _root.createEmptyMovieClip("image_mc3",1); _root.image_mc0.loadMovie(_root.jpg1); _root.image_mc1.loadMovie(_root.jpg2); _root.image_mc2.loadMovie(_root.jpg3); _root.image_mc3.loadMovie(_root.jpg4); //マウスが押されたときに変数MCclickをオンにする _root.mouse_mc.onPress = function() { MCclick = true; trace( "押された時の変数 " +_root.MCclick); } //マウスが離れた時に変数MCclickをオフにする _root.mouse_mc.onRelease = function() { MCclick = false; trace( "離れた時の変数 " +_root.MCclick); nowpoint = (_root._xmouse); trace( "今の位置" + nowpoint); } //マウスがボタン領域外にいった時に変数MCclickをオフにする _root.mouse_mc.dragOut = function() { MCclick = false; trace( "どっかいった時の変数 " +_root.MCclick); } stop(); ●ステージ上にかぶせている透明なMC(mouse_mc) //MCclickがオンの時変数mc_xの値をとり続ける onClipEvent (mouseMove) { if (_root.MCclick) { _root.mc_x = (_root._xmouse); trace( "押された時の変数mc_xの位置 " + _root.mc_x); trace( "マウスを押したままの変数 " + _root.MCclick); //100以下の時に画像1を表示 if((_root.mc_x >= 0) || (_root.mc_x <= 100)){ _root.image_mc0._visible = true; _root.image_mc1._visible = false; _root.image_mc2._visible = false; } else if((_root.mc_x >= 100) || (_root.mc_x <= 200)){ _root.image_mc0._visible = false; _root.image_mc1._visible = true; _root.image_mc2._visible = false; } else if((_root.mc_x >= 200) || (_root.mc_x <= 300)){ _root.image_mc0._visible = false; _root.image_mc1._visible = false; _root.image_mc2._visible = true; } } } この書き方で一応動作はするのですが、1枚目と2枚目の画像の切り返しか動作が行われなくて困っています。 画像のサイズ、ステージのサイズは両方とも 400*400です。
- ベストアンサー
- Flash
- Flashでボタンをクリックすると表示・非表示するには?
お世話になります。 ボタン「buttonC」に以下のスクリプトを記入し、クリックするとターゲット「C」が表示されるようにしています。「C」はタイムライン1では非表示で、タイムライン2以降で表示されるようにしてあり、「buttonC」をクリックすると「C」のタイムラインが2に移動するという仕組みです。 on (release) { with (C) { if (_currentframe == 1) { gotoAndStop(2); } else { stop(); } } } on (release) { buttonC._alpha = (50); } 更に「buttonC」はクリックするとアルファ=50%になるようにしています。 この状態で、もう一度クリックすると、「C」を非表示(タイムライン1に戻す)にし、「buttonC」のアルファを100%にするように設定したいのです。Flagを使ってみたのですがどうも上手くいきません。 以下は試したスクリプトです。 on (release) { if (playmode=1) { with (C) { if (_currentframe == 1) { gotoAndStop(2); } else { stop(); } } } } on (release) { if (playmode=1) { buttonC._alpha = (50); playmode = 2; } } on (release) { if (playmode=2) { buttonC._alpha = (100); C.gotoAndStop(1); _root.playmode = 0; } } 他の方法でも構わないので、良い方法がありましたら教えてください。 よろしくお願いいたします。
- ベストアンサー
- グラフィックソフト
お礼
BlurFiltanさま 回答ありがとうございます 回答を頂いてからいじってみましたが、HitTestを入れてのスプリクトでも同じ玉が何個も表示されるエラーもなくなりました (質問のアクションスプリクトはHitTestなしで作ったものです) ゲームクリアは たとえば左から順に赤・青・黄・緑と玉を入れると正解(正解の並び順番はひとつ)で 「エンディング画面へ飛ぶ」gotoAndPlay("ending")にしたいのですが、教えていただいた、 ------------------------------------ // このムービークリップ(またはボタン)を放したとき on (release) { // 赤が穴1と接触 なおかつ 青が穴2と接触 なおかつ // 黄が穴3と接触 なおかつ 緑が穴4と接触 していたら if (_root.aka.hitTest(_root.ana1) && _root.ao.hitTest(_root.ana2) && _root.kiiro.hitTest(_root.ana3) && _root.midori.hitTest(_root.ana4)) { // 完了!を出力(実際は何か他の動作を書く) trace("完了!"); } } ------------------------------------ を少し変更して、else ifとgotoAndPlay("ending")を使い、ana(1~4)に書き加えてみたのですが エンディングに飛びませんでした。。 根本的に、玉が16個あるのもおかしいと思いつつ作っていましたが 玉のムービークリップを4つ複製すると、4つ同時に表示されたり、 ana1をクリック後ana2をクリックするとどちらにも表示されるなど、エラーになってしまいます 一つの玉ムービークリップを ↓ ●○○○ ↓ ○●○○ このように移動させる簡単な方法があるのでしょうか? X・Yを使うのはなんとなく分かるのですが、 どのように書けばよいでしょうか? また、itemは画面右の小さいアイコンで aboutは、itemの詳細画面のことです お時間とらせてしまいすいません(;;)
補足
先ほど自己解決しました!! else ifを使うのではなく、on(release)を新たに書いてHitTest文を追記することで、無事エンディング画面に飛びました 4つの玉をXYを使って移動させる動作も出来ています 丁寧に教えていただいたおかげです(・∀・) ありがとうございました!