- 2010-01-05 (火) 17:57
- lesson3
カスタムクラスで読み込んだムービークリップに加速度をつけて移動させる
『Math.random() を使ってランダムに色を変える方法』で利用したBall.asを今回も使ってステージにボールを配置します。
X軸はステージの1/5の位置に配置し、Y軸をステージの真ん中に配置させます。(サイズ50と青色を指定)
//Ball.asを読み込み var ball:Ball = new Ball(50, 0x0000ff); addChild(ball); ball.x = stage.stageWidth / 5; ball.y = stage.stageHeight / 2;
これでステージにボールが表示されるようになったと思いますので、次にボールを動かすスクリプトを書きます。
今までやってきたムービークリップの動かし方にさらに加速度のプログラムを足します。
//イベントリスナー
ball.addEventListener(Event.ENTER_FRAME, loop);
function loop(event:Event):void{
ball.x += 1;
}
上記が従来ムービークリップのX軸に1を足して動かす方法ですが、下記は1の変わりに変数(vx)を用いてX軸の数値に置き換え、さらに加速変数(ax)をフレームが読み込まれる度に足して変数vxの数値を増やしていく感じになります。
//イベントリスナー
ball.addEventListener(Event.ENTER_FRAME, loop);
function loop(event:Event):void{
vx += ax;
ball.x += vx;
}
こうすることにより、ボールがどんどん加速しているように見えます。
今回は加速度を1に設定しましたが、数値を変えれば加速度を調整できます。
この加速度は色々な場面でも使うことができるので、徐々に何かをしたい時になどに使うと便利です。
//Ball.asを読み込み
var ball:Ball = new Ball(50, 0x0000ff);
//インスタンスプロパティー
var vx:Number = 0; //初期値
var ax:Number = 1; //加速度
addChild(ball);
ball.x = stage.stageWidth / 5;
ball.y = stage.stageHeight / 2;
//イベントリスナー
ball.addEventListener(Event.ENTER_FRAME, loop);
function loop(event:Event):void{
vx += ax;
ball.x += vx;
}
ボールがなくなってたらもう一度更新して下さい。
- Newer: 物理エンジン[Box2D]を使ったの作品紹介
- Older: FlashDevelopの便利ショートカット
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.addchild.net/as3-beginner/ls3/370.html/trackback
- Listed below are links to weblogs that reference
- ムービークリップを徐々に加速させる[3-7] from ADD CHILD = AS3