電子書籍の厳選無料作品が豊富!

Actionscript2 で上から落下してきたオブジェクトが下(地面?)でバウンドして
バウンドの幅がだんだん小さくなって行って止まる。
というのはどのようにしたらよいのでしょうか。

http://hakuhin.jp/as/move.html#MOVE_05
上記のサイト「放物線(自由落下)のように移動させたい」のように

横に弾んでいくのではなく、同じ場所で縦にのみバウンドする動きです。


また、バウンドがその場で止まったあと、横に少し転がって止まるようにもしたいのですが
それはどのようにしたらよいのでしょうか。

初歩的な質問ですみませんが、詳しい方がいましたら教えてください。
よろしくお願いします。

A 回答 (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/ex …

「24 リアルなボールのバウンド - MdN Design Interactive」
http://www.mdn.co.jp/di/articles/655/?page=4
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/25 21:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!