AS2初心者のためのオブジェクト移動について

このQ&Aのポイント
  • 解説
  • オブジェクトのバウンド幅を調整する方法
  • バウンドの後にオブジェクトを横に転がす方法
回答を見る
  • ベストアンサー

AS2 初心者です オブジェクトの移動について 

Actionscript2 で上から落下してきたオブジェクトが下(地面?)でバウンドして バウンドの幅がだんだん小さくなって行って止まる。 というのはどのようにしたらよいのでしょうか。 http://hakuhin.jp/as/move.html#MOVE_05 上記のサイト「放物線(自由落下)のように移動させたい」のように 横に弾んでいくのではなく、同じ場所で縦にのみバウンドする動きです。 また、バウンドがその場で止まったあと、横に少し転がって止まるようにもしたいのですが それはどのようにしたらよいのでしょうか。 初歩的な質問ですみませんが、詳しい方がいましたら教えてください。 よろしくお願いします。

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

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

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

> 横に弾んでいくのではなく、 > 同じ場所で縦にのみバウンドする動き つまり単純に 「x座標方向(横方向)移動関係のスクリプトを全て消せば良い。」 それだけのことでしょう? 横に動く理由(原因)は 「x座標方向に動かしているからx座標方向に動く」 それだけのことです。 ですからこの理由(原因)を取り除けば良いだけです。 最初の「move_05_00_fla05_as1.fla」内の 「player(ボールMC)」自体に書かれたスクリプトを変更する場合は 次のようになります(x座標に関係する行を消しただけ)。 //--------------------------- onClipEvent (load) { _y = 150; dy = -10; } onClipEvent (enterFrame) { dy += 0.5; // 下方向に移動量を増やす _y += dy; // 地面に着いたらyの移動量を反転 if (_y>250) { _y = 250; dy *= -0.8; } } //---------------------------     > また、バウンドがその場で止まったあと、 > 横に少し転がって止まる 私が上に書いたスクリプトでも 元のスクリプトでも,バウンドは決して止まりません。 -0.8倍 ずつ小さくなるだけです。 ですからまずは, 「『バウンドが止る』とはどういうことなのか」 を定義する必要があります。 その定義した状態(条件)になれば 『横に転がる』という動きをさせるわけですが 「どのように『横に転がる』のか」 これも書かれていないのでわかりません。 さらに「少し転がって」の 「『少し』とはどういうことなのか」 もわかりません。 『少し』とは 時間的に『少し』なのか,距離的に『少し』なのかすらもわかりません。 すべてにおいてアヤフヤですね(考える気すらもないのでしょうか?)。 もしスクリプトをコーディングするのでしたら その前にこの辺のことはしっかりと "具体的に" 考えておく必要があります。 スクリプト以前(以下)の話です。 とにかく他人まかせ(または PCまかせ)でアヤフヤなことだらけなので 私が勝手に決めた定義と動きで行きます。 //--------------------------- onClipEvent (load) { _y = 150; dy = -10; } onClipEvent (enterFrame) { dy += 0.5; // 下方向に移動量を増やす _y += dy; // 地面に着いたらyの移動量を反転 if (_y>250) { _y = 250; dy *= -0.8; //もし dy の絶対値が 1 未満になれば if (Math.abs(dy)<1) { //x座標を 80 に向けて 1/20 ずつ近づける this._x +=(80-this._x)/20; } } } //---------------------------   気に入らない動きであれば自由に変更してください。   思うのですが, 何故このような動きにスクリプトを使う必要があるのでしょうか? もし,ActionScript やそれ以前(以下)のことすら考える気もないのでしたら 最初からスクリプトなど使わずにモーショントゥイーンで作成すれば良いだけだと思います。 モーショントゥイーンを使えばもっと良い動き(情緒や感性あふれる動き)を簡単に作ることができますよ。 「移動するバウンドボール(オレンジのサンプルFLASH講座)」 http://orange.2-d.jp/flash/anime/03.html 「FLASH活用講座 トゥイーンアニメーションを作る」 http://juen-cs.dl.juen.ac.jp/html/flash/04/03/explanation.html 「24 リアルなボールのバウンド - MdN Design Interactive」 http://www.mdn.co.jp/di/articles/655/?page=4

melonkiui
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • Actionscriptでふわふわ感を再現したい

    とても困っているのでご質問させていただきます。 http://community.edita.jp/ 上記のページの「雲が降ってくる」→「ふわふわと横に移動」→ 「マウスオーバーでスムーズに拡大」ような一連の動きを Actionscriptで再現するには どのような記述をしたらいいのでしょうか? ちなみに、落下するものはランダムで再現したいと思います。 当方、Actionscriptはかじったです。 できれば、わかりやすいシンプルな記述をご教授していただけると ありがたいです。 環境:Flash8 Actionscript2.0 以上よろしくお願い致します。

  • swfファイルの横幅をと表示位置の調節方法またはASスクリプト

    横1800px縦525pxのFlashを製作しユーザーのウィンドウサイズに合わせて表示の仕方を調節したいのですがASに詳しくないのでアドバイスお願いします。 やりたいこと:swfをウィンドウサイズあわせて横幅をリサイズし表示させたいと思っています。 リサイズの仕方も、どのサイズでもちょうど真ん中を中心として左右を切り捨てる感じにしたいのです。 (スクロールなし) あと表示もどのサイズでも真ん中を中心に表示させたいと思っています。 アドバイスお願いします。 バージョン:Flah CS3 ActionScript3.0です。 ActionScript2.0でもいいのでよろしくお願いします。

  • 水平投射

    1・物体を、同時に自由落下&水平投射させるとして、 同時に着地するのはなぜですか? 自由落下にかかる時間の式t=√2h/gを使って説明していただけるとありがたいです。 2・水平投射した物体の水平方向、鉛直方向の 動きはどうなっているんでしょうか。水平方向は 等速度、鉛直方向は加速していると聞きました。 しかし、なぜそれで放物線を描くのでしょうか。 よくわからないのでお願いします。 なるだけお早目の回答をお願いできたらなと思います。

  • アヒルの親子

    宜しくお願いします。 アヒルではないのですが、一番先頭のMCをバウンドしながら横に移動するアニメーションを付けて、その後を少し時間差をつけて同じ動きで別MCが追っていくと言う感じの物を作りたいのですが、ASで制御するにはどうしたらいいでしょうか? 何方かご教授頂ければと思います。 どうぞよろしく願い致します。

  • 画像をランダムに表示するには

    プログラム初心者ですAS3.0で書いています ステージの幅は横550×縦400 10個のムービークリップをランダムに8個表示したいです 縦が2個、横が4個で少し間を空けて表示 addChildで表示したいです 重複もできればなくしたいです よろしくお願いします

    • ベストアンサー
    • Flash
  • 横いっぱいのものを作るにはどうしたらいいですか?

    横いっぱいのものを作るにはどうしたらいいですか? http://www.green-house.co.jp/index.html のような、高さが決まっていて横だけ100%のものを作りたいのですが、どう作っていけばいいかわかりません。 作りたいものは、上記のようなスライドショー的なもので、メインの画像が変わればバックの画像や色も変わるものを作りたいのですが。 通常は縦・横を決めて作っていく、全画面ならパブリッシュの設定でそれぞれを100%にすると思うんですけど、横だけ100%だとどうすればいいのかわかりません。 actionscript(as2.0 or as3.0)でそのあたりを指定して表示させるのか、 パブリッシュ設定画面で設定するのか、 どのように設定・制作していくのかご教授いただけると幸いです。 【備考】 使用ソフト:adobe flash cs4 スキル:タイムラインで簡単なモーションを使ったものやactionscript2.0でonreleaseなどの簡単なイベント関数を使ったものがわかる程度です。

    • ベストアンサー
    • Flash
  • ムービークリップとシェイプトゥイーンの使い分けについて

    こんばんは。 つい一ヶ月程前からFLASH CS4でActionScriptを勉強しはじめ、 現在サイト製作中です。 以下URLのサイトのように、メインメニューをクリックしたら オブジェクトのボックス(四角い箱)が下に伸びる(heightが高くなる) アニメーションを作ろうとしておりますが、 FPSを24程度にしてムービークリップのクラシックトゥイーンで ボックスを伸ばそうとすると、カタカタとしたぎこちない動きに なってしまい、下記のサイトのような滑らかな動きになりません。 http://www.minus.dk/ シェイプトゥイーンでボックス(上記のように四角い箱が縦に伸びる動き) をアニメーションすると、同じFPS24でも滑らかな動きになりますが、 シンボル化できない為、ASでターゲット指定ができません。 こういう場合、やはりオブジェクト(四角い箱)をムービークリップ化し、 FPSの数値を上げてアニメーションするのが適切な方法でしょうか? サイトのアニメーションによっても様々だと思いますが、 その場合の適切なFPS値などがあればご教授ください。 因みに、FPS60程度にするとモーショントゥイーンでボックスを伸ばしても スムーズな動きが再現できます。 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • メニューの単語が落ちてきてバネのようのバウンドする

    FLASH8を使用しています。 actionscriptの本を読みながら実際作っていてどうしても分からず行き詰ってしまいました。 「WEBページを開くとメニューの単語(「news」「work」「about」「contact」)が上から下に落ちてきてバネのようのバウンドする」 という動きです。 1新規に「bound」という名前のムービークリップを作成する。 2「bound」内にダイナミックテキストフィールドを配置し、変数名を「title」とする。 3「bound」を右クリック→「コンポーネント定義」で4つの変数を追加する。  ground(地面の位置) , gravity(重力) , absord(地面に衝撃したときの衝撃吸収度合) ,title(テキストフィールドに表示する文字列) 4「bound」内に新規レイヤーを作成し、1フレーム目にフレームアクションを記述する。  ・・・・(内容はバウンドの動きを再現する関数) 5新規に「btn」という名前のボタンクリップを作成し「btn」内のヒットフレームにのみ長方形を描く。 6 5のボタンクリップを「bound」内に配置し、ボタンアクションに次のスクリプトを記述する。  on(release){ speed -= 20; move = true ] ここで、”6の5のボタンクリップを「bound」内に配置” する方法が分かりません。配置って?どういう事・・?という感じです。 ここで半日止まったままで、苦しくなってきました。宜しくお願いします。

  • 落下運動

    地上75mの位置から小球を自由落下させ、同時にその真下の地面から他の小球を 初速度25m/sで真上に投げ出したところ、2つの小球は空中で衝突した。 衝突した位置の地上からのたかさとして正しいのはどれか。 ただし、重力加速度を9.8m/s^2とする  という問題をグラフで解きたいのです。  縦は初速度、横は時間ですよね  落下(グラフは右下がり)と投げ上げ(右上がり)が交差しますよね、  時間は、25m^2× a/2=75                  a=3で3秒としたのですがその先がわかりません。   どなたかご教授ください。   よろしくお願いします。  グラフの面積は衝突しあうので75m^2になるのはわかるのですが

  • FLASHモーショントゥイーンとアクションスクリプトについて教えて下さ

    FLASHモーショントゥイーンとアクションスクリプトについて教えて下さい。 下記のような動きをする場合 http://hakuhin.jp/as/move.html#MOVE_04 サイトの中の説明にあるようにアクションスクリプトで行うか ガイドラインを使ったモーショントゥイーンでも作成可能ではないかな? と考えています。 上のサイトのようなオブジェクトを8個くらい組み合わせてぐるぐる回したいのですが これだと少し重くなってしまいますかね? 一般的にはどちらの方がよろしいのでしょうか? アクションスクリプトの方がシンプルですかね?? ご回答の程よろしくお願いいたします。

    • ベストアンサー
    • Flash