• ベストアンサー

ActionScript 3.0 について

最近Flash、ActionScript 3.0のゲーム制作に興味を持って、 自分でパズルゲームをつくってみたいと思いました。 表示されるパズルを押したら得点が追加される形式で、 Aを押したら2点、Bを押したら3点、Cを押したら4点、といったものです。 初めてでどこから手をつけていいのかわからないので、まずどのようなものを理解すればいいのか、どういった土台を作ればいいのか教えてください。

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

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

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

Flash コンテンツ作成ソフトとしては Adobe Flash CS3 以上を使用されているものとして 以下の回答をします。 簡単にするには ステージ上に例えば「point_txt」というインスタンス名を付けた得点表示用のテキストフィールドと 例えば「A_mc」「A_mc」「A_mc」というインスタンス名を付けたパズルの各ピースに当たるMC(ムービークリップ)を用意します。 ※参考【添付図】↓ そして それらのインスタンスが存在するタイムラインのフレームに次のようなスクリプトを書きます。 //--------------------------------------------- //得点を代入する変数 point_num の初期化 var point_num:int = 0; //point_txt に得点を表示 point_txt.text = point_num + "点"; //パズルの各ピースをキーとする Dictionary を作成 var piece_dic:Dictionary = new Dictionary(); //piece_dic の各キーに各ピースMCと各得点値を登録 piece_dic[A_mc] = 2; piece_dic[B_mc] = 3; piece_dic[C_mc] = 4; //A_mc~C_mc を押した時に関数 addPoint を実行 A_mc.addEventListener(MouseEvent.MOUSE_DOWN,addPoint); B_mc.addEventListener(MouseEvent.MOUSE_DOWN,addPoint); C_mc.addEventListener(MouseEvent.MOUSE_DOWN,addPoint); //関数 addPoint の定義 function addPoint(e:MouseEvent):void { //変数 point_num に押されたMCの登録得点を加算 point_num += piece_dic[e.currentTarget]; //point_txt に得点を表示 point_txt.text = point_num + "点"; } //--------------------------------------------- 上記のような感じのものを変形&発展させて行けば ご質問で書かれていらっしゃるようなものができると思います。 別に Dictionary クラスなど使わなくてもできますが 使わない場合は各ピース毎に違う得点を加算する関数を用意するとか クロージャを登場させるとか手間が増えるので Dictionary クラスを使って 1つの関数(イベントリスナー)を複数のピースで使い回す形にしています。 上で書いたようにピースが MC である場合は, その中に勝手な変数を用意できるので そこに各得点を代入して行っても良いです。 しかし ピースがボタンインスタンスであった場合 その中に勝手な変数は用意できないので 汎用性を高める意味も含めて Dictionary クラスを使っています。 ◎参考URL 「FlashゲームPG講座 For AS3.0【Dictionary クラスについて】」 http://hakuhin.jp/as3/dictionary.html

shidoro
質問者

お礼

回答ありがとうございます! 初歩からおしえていただいてすごく助かりました。 もっともっと勉強したいと思います!

関連するQ&A

  • ActionScript3から過去のActionScript2に移りたいのです

    2ヶ月ぐらい前にFlash CS3で参考書を見ながらActionScript3を始めたのですがソースを見れば大体は理解できるようになりましたが参考書に出てきた所以外の部分だと自分の頭が悪く理解や応用ができずに現在は心が折れてしまいました。 ただ自分の目標としているオリジナルゲームは作りたいのでActionScript3よりも過去のActionScript2の方が簡単だった、という文章をネットで見かけたのと私の求めているようなソースがActionScript2の物が多いという理由で過去のActionScript2の方を覚えようと思いました。 そこで本題なのですが現在「FLASH ActionScriptバイブル」を買おうと思っています。 Wikipediaで調べた所 ActionScript1はFlash 5~Flash MX ActionScript2はFlash MX 2004~Flash 8 上記のようになっていたのです。 私はActionScript2を学びたいのですが「FLASH ActionScriptバイブル」は「Macromedia Flash 5日本語版を最大限に生かすスクリプト言語」と書いているのでActionScript1って事ですよね?。 これはActionScript2を学びたい者には買っても意味がないのでしょうか?(これ以外にもActionScript1の本を買ってもActionScript2を学ぶ私には無駄になりますでしょうか?)。 それとも買っても問題ないのでしょうか?。

    • ベストアンサー
    • Flash
  • ActionScript

    ActionScript3.0でムービクリップ(たとえば丸)をA点からB点に移動し、その後C点、さらにD点という具合に移動させたい場合、どのようにスクリプトを書くのが一般的なのでしょうか?やはりif文などを使うのでしょうか? ものすごく初歩的なことのようですが、わからずにいます。何卒よろしくお願いします。

    • ベストアンサー
    • Flash
  • ActionScriptでリアルタイムの通信対戦ゲームやMMOは開発可能でしょうか?

    ActionScriptでリアルタイムチャット、リアルタイムでオセロや将棋などの通信対戦ゲーム、さらに大規模なMMOなど開発することはできますでしょうか。また、ActionScriptでオセロや将棋などCPUと対戦するための人工知能(AI)でも作れますでしょうか。 現在、ActionScriptがJavaやCに置き換わってクライアントで動作する点があって、サーバに負荷が少なく、開発がしやすいため、これからは需要が伸びていくと思いますがどうでしょうか。 ラグナログオンラインとかActionScriptで大規模なMMOを開発できそうな感じとか実際にActionScriptでMMOを提供しているゲームはありますでしょうか。 しかし、ラグナロクオンラインなどのMMOはDirectXに対応しているため、それはActionScriptやJavaではなくC言語と開発されたとしか思えませんが…。 分かる方はご回答をお願いします。

    • ベストアンサー
    • Flash
  • ゼロからFlash,ActionScriptの勉強

    こんにちは、質問を読んでくださってありがとうございます。 これまで同様の質問をされた方のページはみさせてもらいました。私は全くのゼロからFlash,ActionScriptの勉強をしようと思っています。もともとフラッシュを使用したWebページなどに興味があったのですが、 http://www.sightseekerstudio.com/typingmania/contents/odyssey.html というサイトをみて「すげぇ!俺もこんなの作れるようになりたい!」と思ったのが恥ずかしいですが動機としては正直なところです・・・。みなさんは仕事に繋げるためになど立派な理由があるのにこんなんですみません。 したがって、ゼロから勉強するためにお勧めの書籍を教えてほしいです。ウェブページの方は以前の質問者さんの参考ページが良い感じでした。私の性格としましてはコツコツ端っこから塗りつぶしていくのがタイプ(取りこぼしが嫌い)なんで解説が多くステップ型の本が好きです。あとC言語とPerl,HTML,CSSについては簡単には理解しています。しかしオブジェクト指向言語は全くの初めてです。そしてActionScript3.0からでよいと思うのですがいかがでしょうか? Flash(今ならCS4です?)の使い方やJavaScriptについてもよい書籍があれば教えてください。大きな書店がないのですいません。 目標の難易度はわかりませんが第一目標としてはActionScriptを使ったゲームを作る。次にJavaScript等も勉強してWebページのっけるところまで持っていきたいです。デザイン能力やその他の知識についてはそのときがんばります! 春休みからド集中でやっていきたいと思っています。たくさん質問しましたがどれか一つでもアドバイスなどあればよろしくお願いします! 長々と読んでくださってありがとうございます。

  • actionscript2.0と3.0、どちらの学習を先にするべきでしょうか?

    はじめて質問します。長文ですがよろしくおねがいします。 来年の4月からweb制作会社に勤務することになりまして、 それまでの間、actionscriptを勉強することにしたのですが、 (ちなみにプログラミングについてはほぼ素人です) 勤務予定の会社ではflash8を使っているとのことでした。 当面会社に(他アプリケーションの導入状況などから察するに) AS3.0での開発環境の導入がなさそうであるという現状をふまえれば、 やはりAS2.0からの学習を始めた方がよいとは考えています。 一方、先走って3.0の本を買ってしまったという事情があり、 これを無駄にしたくないという思いがあります。 そこで、自分なりに考えうる学習プランをいくつか挙げてみました。 (1)まずは業務上必要な2.0の習得を優先。3.0のテキストにはしばらく寝ていてもらう (2)3.0のテキストを活用し、まずはプログラミングそのものに慣れ、またコンテンツ制作の際に必要な考え方などを学ぶ。その後2.0に着手 (3)2.0と3.0を平行して勉強する 一番スマートなのは(1)だと思っていますが、 もし3.0を学んでからのほうが2.0に取っ付きやすいということなら(2)の選択肢もあるかな、と考えています。 (http://okwave.jp/qa4766052.htmlでは 「3.0からの学習者には2.0は理解できない」という回答がされていますが……) (3)については少々無謀かと思います。 みなさんは(1)~(3)のどのプランが良いかと思いますか? もしくは他に良いプランがあれば教えてください。 似たような質問も他で見ましたが、私とは少々状況が異なるようなので 質問させていただきました。 よろしくおねがいします。

    • ベストアンサー
    • Flash
  • ActionScript3.0の記述が長い・・・

    ActionScript3.0の記述が長い・・・ お世話になっています。 最近Flashを始めました初心者です。 現在FlashCS5である値を計算する計算機のようなFlashを制作しています。 ・・・と、やりたいことは実現できましたので、 このことは質問と直接関係ないのですが。。 質問は、スクリプトのまとめ方(?)についてです。 というのも、初心者だけに知っていることしかできないので、 絶対に一緒に出来るだろうと言うような、同じような記述がたくさん出てきます。 それを配列や演算子を使用し、ソースをすっきりさせたいのです。 無理なものもあるかもしれませんが、 以下のまとめ方をお教えください。 -- (1) -- a.restrict = "0-9"; b.restrict = "0-9"; c.restrict = "0-9"; d.restrict = "0-9"; e.restrict = "0-9"; -- (2) -- var A:Number = Number(a.text); var B:Number = Number(b.text); var C:Number = Number(c.text); var D:Number = Number(d.text); var E:Number = Number(e.text); -- (3) -- var A = B - 100 if(A < 0){ A = 0; }; var C = A / B if(C < 0){ C = 0; }; var D = C * B if(D < 0){ D = 0; } if(D > 0){ D = Math.round(D); }; -- (3) -- F.text = String(A); G.text = String(B); H.text = String(C); I.text = String(D); J.text = String(E); 変数は適当に当てはめています。 お分かりになる方がいらっしゃいましたらご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 中1数学の問題です。どうしても解らないので解き方を教えてください。

    中1数学の問題です。どうしても解らないので解き方を教えてください。よろしくお願いします。 サイコロをふって、出た目が偶数ならば+2点、奇数ならば-3点として、1人がサイコロを6回ふったときの総得点で、勝ち負けを決めるというゲームをした。 A君が、「3,1,6,4,3,2」という目を出したとき、次の問いに答えなさい。 (1)B君はA君に勝った。B君の考えられる得点をすべて答えなさい。 (2)C君は、まちがえて、偶数を+3点、奇数を-2点として計算したため、A君に負けたのに、  A君より高い得点になった。C君の正しい得点を求めなさい。 また、これは何に分類される問題なのでしょうか? 合わせて、よろしくお願いします。

  • Flash 8 BasicからFlash Lite1.1にパブリッシュ

    カテゴリーがわからなかったので、 こちらのカテゴリーにも投稿させていただきます。 Flash 8 Basicを使って、携帯用の動画を制作しています。 今回はどうしてもパブリッシュ形式をFlash Lite1.1にしないといけません。 Flash 8 BasicからFlash Lite1.1にするには、 パブリッシュ設定をFlash Player4にするというふうに聞いたので、 試してみたのですが、エラーになってしまい、できません。 ちなみにこの動画は簡単な物でActionScriptは使っていません。 なんとかFlash lite 1.1の形式で書き出せないでしょうか?

    • ベストアンサー
    • Flash
  • じゃんけんゲームの期待値です。

    A,Bの2人でじゃんけんをして勝ったものが得点を得るゲームをする。 負けたものは、得点を得られないが減らされることはない。 また、あいこの場合は双方とも得点は得られない。 得点はグー・チョキ・パーの手をだして勝った時、 それぞれ3点・5点・6点であるとする。 (1) 2人が同じ確率で無作為に手を運ぶとき、得点の期待値を求めなさい。 (2) 2人がグー・チョキ・パーをそれぞれ1/5、2/5、2/5の確率で無作為にだすとき、 得点の期待値を求めなさい。 どうか、よろしくお願いします。

  • Flash&AS3.0初心者が作れそうなものは?

    最近こちら↓の本を一通り読み終えたFlash&AS3.0初心者なのですが 速習Webデザイン ActionScript 3.0 http://amzn.to/gNZ8vn 次に何をやればいいのかとても迷っています。 上記の本の内容はだいたい理解したのですが完全に理解したわけじゃないので2,3周読み返したほうがいいでしょうか。 それをしたら何を作ればいいでしょうか。 ActionScript3.0を身につけたいと思っているのですが、自分が何かを作りたいと思っているわけでも無く... 初心者がはじめに作るのにうってつけなものは無いでしょうか? 良さそうな制作物や本、参考サイト様があれば教えて頂きたいです。

    • ベストアンサー
    • Flash