![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?e8efa67)
No.1ベストアンサー
- 回答日時:
学生の頃,テレビ放送かビデオで,
花粉のブラウン運動を見たきりで,
その動き方のイメージにあまり自信がありませんが,
すごく単純で良いのであれば,
10pix程度の小さな正円のMCに次のように書けば良いと思います。
-------------------------------
onClipEvent (enterFrame) {
// 2πまでの乱数を取得
var kaku = Math.Random()*2*Math.PI;
// 座標の移動
this._x += 2*Math.cos(kaku);
this._y += 2*Math.sin(kaku);
}
-------------------------------
サイン・コサイン・タンジェントのアレです。
ただし角度はラジアンです。
また,Flash での y座標 は,
モニタのy座標と同じで,下向きがプラスです。
ですから,上下が反転した座標軸をイメージしてくだされば良いと思います。
もう少し,
ギザギザ運動の度合を滑らかにしたり,
スピード(1フレームで進む距離)などもカスタマイズしたい場合は,
値を変数化して置く方がカスタマイズしやすくなります。
そのカスタマイズ可能バージョンが次のスクリプトです。
同じく,10pix程度の小さな正円のMCに書いてください。
-------------------------------
onClipEvent (load) {
// スピードの設定 (可変)
var spd = 2;
// 動き方を変える頻度の設定(可変)
var freq = 2;
// 変数 cnt の初期値
var cnt = 0;
}
onClipEvent (enterFrame) {
// もし cnt が freq で割り切れたら
if (cnt%freq == 0) {
// 2πまでの乱数を取得
var kaku = Math.Random()*2*Math.PI;
}
// 座標の移動
this._x += spd*Math.cos(kaku);
this._y += spd*Math.sin(kaku);
// 変数 cnt に 1 を加算
cnt++;
}
-------------------------------
この,
var spd = 2;
や
var freq = 2;
の 2 を変化させれば,カスタマイズ可能です。
しかし,上のままでしばらく放っておくと,
ステージ領域から消えてしまう場合があります。
それで,ステージの枠まで来たら折り返すスクリプトを加えたのが次のスクリプトになります。
-------------------------------
onClipEvent (load) {
// スピードの設定 (可変)
var spd = 2;
// 動き方を変える頻度の設定(可変)
var freq = 2;
// 変数 cnt の初期値
var cnt = 0;
}
onClipEvent (enterFrame) {
// もし cnt が freq で割り切れたら
if (cnt%freq == 0) {
// 2πまでの乱数を取得
var kaku = Math.Random()*2*Math.PI;
// もし x座標が ステージより左に出そうであれば
if (this._x<=this._width/2) {
// 角度を右方向へ
var kaku = 0;
// もし x座標が ステージより右に出そうであれば
} else if (this._x>=Stage.width-(this._width/2)) {
// 角度を左方向へ
var kaku = Math.PI;
// もし y座標が ステージより上に出そうであれば
} else if (this._y<=this._height/2) {
// 角度を下方向へ
var kaku = Math.PI/2;
// もし y座標が ステージより下に出そうであれば
} else if (this._y>=Stage.height-(this._height/2)) {
// 角度を上方向へ
var kaku = Math.PI*3/2;
}
}
// 座標の移動
this._x += spd*Math.cos(kaku);
this._y += spd*Math.sin(kaku);
// 変数 cnt に 1 を加算
cnt++;
}
-------------------------------
ごちゃごちゃ書きましたが,
3つ書いたスクリプトのうち,
一番大切なのが,最初のスクリプトです。
あとはカスタマイズしやすくして,
ステージから消えそうになった場合の処理を入れてみただけです。
つまり3つ目はエラー処理のようなものの部分が大半を占めているだけです。
ありがとうございます。
ご回答頂いたスクリプトを元に変数を調整
(微振動している様に見えるレベルまで細かく設定)して
フレームレートを高く設定することで限りなく質の高い
ブラウン運動の再現ができました。
spd、freq変数を組み込んで頂いたおかげでより理想的な再現ができたのだと思います。
途方にくれていたので本当に助かりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
uwscでExcelに自動記入
-
自分でチラシを作りたいです!...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HSP あたり判定
-
MCをブラウン運動させたい。
-
動かした画像を元の位置に戻すには
-
【急ぎ】setIntervalを使って各...
-
C言語 ゲーム
-
物体の衝突判定について教えて...
-
文字(テキスト)の潰れ・にじ...
-
障害物に対する衝突判定
-
ローディング画面の作り方(欲...
-
_x,_y指定の移動の方法(Flash l...
-
ムービークリップの初期座標
-
photoshopで書いた四角の枠の中...
-
Pythonを使ってせん断応力図、...
-
python ボタンを押すと複数の関...
-
VBAで改行の入ったデータの正規...
-
【VB.NET】別Formのボタンが押...
-
別のアプリケーションのテキス...
-
VBScriptでMsgBoxのYesNoボック...
-
変数に256文字以上のテキストを...
-
テキストボックスの中身をリセ...
おすすめ情報