スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- | | スポンサー広告

放物運動するムービークリップ

ムービークリップを放物運動させるサンプルを作ってみました。一応、マウスで掴んで投げられマス。




3つの入力欄ですが、重力加速度は下方向に働く加速度デス。反発係数は壁や床/天井に当たって跳ね返るときの減速度合いで、摩擦係数は壁や床/天井にこすれたときの減速度合いデス。

onEnterFrameでフレーム毎に速度を設定値分増加させることで放物っぽい動きにしています。

スクリプトは以下のようなカンジです。

// 重力加速度
var a:Number;
// 反発係数
var e:Number;
// 摩擦係数
var r:Number;
// 設定ボタン
setting_btn.onRelease = setup;
// 枠
var left:Number = frame_mc._x;
var top:Number = frame_mc._y;
var right:Number = left + frame_mc._width;
var bottom:Number = top + frame_mc._height;
// 対象の中心からの幅/高さ
var oX:Number = jien_mc._width / 2;
var oY:Number = jien_mc._height / 2;
// ドラッグ中か?
var dragging:Boolean = false;
// ドラッグ係数
var d:Number = 0.5;
// 速度
jien_mc.speedX = 0;
jien_mc.speedY = 0;

setup();

// 移動
jien_mc.onEnterFrame = function() {
if (dragging) {
// x方向の移動
this.speedX = (_xmouse - this._x) * d;
this._x = _xmouse;
// y方向の移動
this.speedY = (_ymouse - this._y) * d;
this._y = _ymouse;
} else {
// x方向の移動
this._x += this.speedX;
// y方向の移動
this.speedY += a;
this._y += this.speedY;
// 壁にぶつかったら跳ね返る
if (this._x - oX < left) {
this._x = left + oX;
this.speedX *= -e;
this.speedY *= r;
} else if (this._x + oX > right) {
this._x = right - oX;
this.speedX *= -e;
this.speedY *= r;
}
// 天井/床にぶつかったら跳ね返る
if (this._y - oY < top) {
this._y = top + oY;
this.speedX *= r;
this.speedY *= -e;
} else if (this._y + oY > bottom) {
this._y = bottom - oY;
this.speedX *= r;
this.speedY *= -e;
}
}
}
// ドラッグ
jien_mc.onPress = function () {
dragging = true;
}
jien_mc.onRelease = function() {
dragging = false;
}
jien_mc.onReleaseOutside = function() {
dragging = false;
}
// 設定
function setup() {
a = Number(a_txt.text);
e = Number(e_txt.text);
r = Number(r_txt.text);
}
jien_mcが放物運動するムービークリップです。jien_mcは、ムービークリップの中心を原点としています。
jien_mc.speedX/jien_mc.speedYに、ムービークリップx方向の速度/y方向の速度を持たせています。

frame_mcは、ムービークリップが移動可能な範囲を示すワクです。
スポンサーサイト

テーマ:Flash - ジャンル:コンピュータ

2007.04.18 | | Comments(0) | Trackback(0) | Flash/ActionScript

«  | HOME |  »

プロフィール

HundredthMonkey

Author:HundredthMonkey
プログラマ。

ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文:

ブログ内検索


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。