質問ページ3 / 27


質問ページ3 / 27

質問ページ3/27

概要シューティング
投稿者Parafla Quality
状態
カテゴリーActionScript
投稿日2009-02-14 (土) 14:20:44
バージョン1.37

質問内容

ASの勉強をかねてシューティングゲームを作っているんですが、敵と自機があたったら自機が点滅するようにしたくて敵のスプライトのスクリプトにこう書きました。

if (this.hitTest(_root.jiki)) { _root.damages.gotoAndPlay?("moviestart"); this.removeMovieClip?(); _root.damages.removeMovieClip?(); }

moviestartはdamegesにあるラベル名で、ラベルの前はスプライトを停止状態にしてます。 ダメージスプライトではさらにスプライトを作って、そこに

onClipEvent? (enterFrame){ _x = _root.jiki._x - 18; _y = _root.jiki._y - 17; }

と書き、点滅画像を入れました。

これで実行してみたんですが、ダメージを受けると、自機が消えず、点滅画像も点滅後に自機の画像に戻ってくれません。(点滅画像は自機より深度が下にあるので下にうっすら見えます。)

試しにダメージスプライトでアクション(画像を消去)で自機のスプライトの深度を設定してみたのですがダメでした。同様に点滅画像の深度にしてもそれも消えませんでした。

どうすれば自機画像→ダメージを受けると点滅画像→やがて自機画像になるのでしょうか?

わかりにくくてすいません・・・回答お待ちしてます。

回答

  • その点滅のスプライト上下にスクリプトでこう書く。スプライトの上には、_root.myChar._visible = false; 、スプライトの下には_root.myChar._visible = true; myCharをjikiに置き換えればいいかな。 あと、_root.damages.removeMovieClip?();は不要-- 2009-02-14 (土) 16:45:00
  • ちなみにスプライトの上下ってのは、_root上にあるラベルでジャンプする点滅用スプライトの中にある点滅スプライトの上下って意味。そのまま_rootにあるスプライトの上下にスクリプトを置いても意味がない。だから、点滅用スプライトには、1行目.何もしない。2.停止 3.ラベルmoviestart 4.スクリプト(上で書いたやつ falseで自機を消す) 5.点滅しているスプライトまたは画像(わざわざスプライトにしなくてもいい) 6.スクリプト (true で自機を再表示させる) (7.スクリプトthis.removeMovieClip??よくわからんここ) 8.アクション停止 これでいいはず。 -- 2009-02-15 (日) 00:07:38
  • 回答いただいたやり方でやってみたら、できませんでした・・・でも、falseの文をonClipEvent?? (enterFrame){ }の中に入れたらなぜかできました(汗)でもこれだと元に戻らなくなってしまいます・・・あとわからないことがふたつあります。点滅画像がなぜか左上にもでてしまうことと、点滅画像をスプライトにしない場合は、点滅画像の位置設定をどこでやればいいのでしょうか?すいませんがよろしくお願いします。 -- 質問者? 2009-02-15 (日) 21:37:06
  • 一つ目、点滅画像が左上に表示される・・・メインに配置されたスプライトの画像位置を画面外にすればいいかと。二つ目、点滅画像をスプライトにしない場合・・・これはパラフラシューティングのMC_damageのスプライト参考   で、本題。MC_damageを例にとると、点滅させるスプライトに仕立てて、この画像ってあるでしょ。これの上下にスクリプトを書く。スクリプトを書くってのを勘違いしてると思うんだけど、アクション挿入で<スクリプト>を入れるの。その画像の上下に上で書いたスクリプトだけを書く。それ以外何も書かなくていい。あとは_visibleの使い方についてちょっと調べたらいいかも。ここのサンプルpflにはなかったかなー。脱出ゲームで頻繁に使われるやり方だからついでに覚えておくといいかも。シューティングは初心者にはかなり敷居が高いと思う。自分もようやく形にできるようになったぐらいだけど、一通りASの知識がないとなかなか想像通りのものができませんねぇ。まぁがんばりましょう。 -- 2009-02-16 (月) 00:06:18
  • つまり、仕組みとしては、スプライトの中のラベルに飛ばされると、上から1つ目のスクリプトが実行され、_visible = falseで自機の表示が消える⇒点滅された画像が実行される⇒_visible = trueで消された自機が表示されるようになる。 この一連の流れを作るってことを意識すればいいかもしれませんねー -- 2009-02-16 (月) 00:09:50
  • 左上に表示させるのは消すことができました。スクリプトは一応アクション挿入でやっています・・・一行だけ入れてスプライトの上がfalse、下がtrueにしているのですが・・・やはり消えません(汗)パラフラシューティングに使われてるeval関数はあまり使わないほうがいいと(たしかパラフラ小学校に)あったので、あの作り方にしてみました。やはり勉強不足でしょうか・・・ -- 質問者? 2009-02-16 (月) 06:56:56
  • スコープが間違ってる可能性があるかな。点滅スプライトに座標は書いたのはそのまんまですよね?最初にやったそちらのやり方にプラスして説明しただけだから。単にスクリプト書くだけじゃ駄目ですよ。シューティング難しいよー。今パラメーターどうやって設置するのか半日かけても一歩も進まないとかそんな状態が続いてる。evalは普通に使ってますが・・・(´・ω・`)書いてあったのは知ってるけど。ファイルをアップしてくれたらそれ確認しますよー。自分はあんま脱出ゲーム作る気はなかったんだけど、ASに慣れるにはいいかなと思ってそこから始めますた。とはいえまだまだ初心者の殻を破ってませんw -- 2009-02-16 (月) 11:29:31
  • すいません、これ学校の課題なのでいろんな人に見られるわけにはいかず・・・メールかなにかでやりとりできないでしょうか?無理だったらそれでもかまいません。丁寧に教えてくれてうれしかったです。 -- 質問者? 2009-02-16 (月) 18:21:46
  • okok ほなuploaderあとで作るんでそっちにどうぞ。またのちほど。メールを晒すのもさすがに怖いので手順考えておきます。てかうちのブログまだ一人も来訪者いないんだなぁ(爆 最近作ったばっかりなんだけど -- 2009-02-16 (月) 22:38:55
  • 了解です。お手数おかけします。 -- 質問者? 2009-02-17 (火) 00:09:07
  • 了解です。お手数おかけします。 -- 質問者? 2009-02-17 (火) 00:32:37
  • うpローダーがswfなどの拡張子を受け付けないようなので、メールでお願いします。buzzでメアドをつけて、送信ボタンを押す前にチェックを入れて送信してください。折り返しメールを飛ばすんでファイルを添付してください -- 2009-02-17 (火) 14:53:27