このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

ActionScript2.0 ボール反転

ActionScript

2011.11.03

この記事は最終更新日から1年以上が経過しています。

前回のActionScript 簡単なイージングの続きになります。

前回ではball_mc._x>710の時、ボールの位置をx座標710pxで止めて下さい。

というscriptでした。

ActionScript2.0(おさらい)

var ball_mc:MovieClip; //オブジェクトの宣言
var speed = 0; //加速初期値
this.onEnterFrame = function(){
speed += 1; //加速値
ball_mc._x += speed;
if (ball_mc._x > 710) {
ball_mc._x = 710;
delete this.onEnterFrame;
}
};

ではball_mc._x>710の時、ボールの進行方向を反転させましょう。

ActionScript2.0

var ball_mc:MovieClip; //オブジェクトの宣言
var speed = 0; //加速初期値
this.onEnterFrame = function(){
speed += 1; //加速値
if (ball_mc._x > 710) {
speed = speed*-1;
}
ball_mc._x += speed;};

とspeed = speed*-1;という文を一文入れると反転可能です。

また、前回のままball_mc._x += speed;をif文の前に記述すると、

ボールがハマってしますので、if文の後に記述しましょう。

speed += 1; で加速が付いた分、壁にぶつかった時マイナスで反対方向にボールを進めます。

また、このままだとボールが半分はみ出て(ボールの中心が基準の為)から反転するようになってますので、

さらにscriptを記述します。

if (ball_mc._x > 710 - ball_mc._width/2){

ball_mc._width/2でボールの半径を取得し、その分引きます。

これで完成!

デモページ

demoはこちらから 

また今度は左端がはみ出てしまうので、右側同様に左端のif文を追加します。 

if (ball_mc._x<0 + ball_mc._width/2) {
speed = speed*-1;
}

はみ出なくはなりましたが、ボールとして不自然な動きなので、更に縦方向も考え、

ボールを作っていきたいと思います。

Related Article

LATEST NEWS

RANKING

ARCHIVE

SPONSOR

現在、掲載募集中です。



About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。