本文譯者:egoldy 文章出處: http://www.bit-101.com 文章性質(zhì):翻譯 譯者網(wǎng)站很值得一看:http://www.webstudio.com.cn/
Actionscript animation 簡明教程
本教程節(jié)選自bit-101.com 的未正式出版的新書making things move的新書介紹。主要內(nèi)容是關(guān)于速度,加速度,彈性,緩動,摩擦力,重力等內(nèi)容,這里沒有非常詳盡的內(nèi)容,如果你想知道更詳盡的內(nèi)容,可以預(yù)定購買作者的新書making things move…相信一定是一本好書。引用keith peters的話就是你一定不要直接將代碼粘過來用,只有理解了它的應(yīng)用,才能運用自如。在本教程中本人對大部分內(nèi)容進行了擴展講解。希望對于初學(xué)或中級用戶有所幫助,由于多年沒有研究過數(shù)學(xué)物理,難免有誤,希望多多指正。
1. 速度
物體的運動都是沿著一定的方向,以恒定或是加速度的方式的運動的。在FALSH中要使物體以一個恒定的速度運動,就需要我們在每一幀不斷的累加恒定的速度。這里面我們使用一種幀的循環(huán)的方式,來使物體不斷的累加恒定的速度,以達到目的地。對于幀的循環(huán)方式大致上有三種,一種是使用代碼onEnterFrame,一種是使用setInterval,另一種就是使用二到三幀來達到循環(huán),如果你對這三種方式不太熟,請查看幫助來學(xué)習(xí)。
在x軸方向的速度我們定義為vx,方向是向右,如果向左只要設(shè)為負(fù)值就可以。 例如: 代碼:vx=5; onEnterFrame=function(){ my_mc._x+=vx; //你也可以寫成 my_mc._x=my_mc._x+vx; }
演示:
我們發(fā)現(xiàn)MC以恒定為5的速度向右移動,如果想要它向左移,只要將vx設(shè)為負(fù)值即可。
通過上面的代碼我們可以變通一下,如果想使小球上下移動,可以設(shè)置y軸上移動。代碼如下:vy=5; onEnterFrame=function(){ my_mc._y+=vy; //你也可以寫成 my_mc._y=my_mc._y+vy; } 這里就不再做演示了。你可以自已試一下,看看你是否理解了。
下面,我們再變通一下,在物理中有一個概念叫合速度,也就是x軸和y軸方向上的合速度。下面我們就來看一下,你可能已經(jīng)知道了我在說什么。下面來看一下代碼:最好你能在看下面代碼之前自已寫出來。
代碼:vx=5; vy=5; onEnterFrame=function(){ my_mc._x+=vx; my_mc._y+=vy; }
演示:
演示發(fā)現(xiàn)它已經(jīng)沿著x,y合速度的方向移動了。是不是覺得很容易?這里我用的vx,vy都是5,也就是說合速度的方向是45度,當(dāng)然你可以讓vx,vy為不同的值,會有不同的速度也會沿不同的方向移動,如果反向,自然設(shè)置vx,vy為負(fù)值即可。
上面的學(xué)習(xí)如果你認(rèn)為很容易,那下面這段相信對你也不會有問題,剛才我們說到當(dāng)設(shè)置vx,vy都相同時,它是以45度的合速度方向運動的。雖然設(shè)置不同的值可以代表不同的方向。但這種方法很不科學(xué)。我們可以動用我們的數(shù)學(xué)知識,來讓物體按我們指定的特定的角度移動。這里需要復(fù)習(xí)一下我們的數(shù)學(xué)知識。(1) 弧度:弧度=角度*PI/180; (2) 角度:角度=弧度*180/PI; 如果以指定的角度運動。那么這時的速度累加相當(dāng)于沿著半徑的方向。最終目的點是到達沿著半徑方向的某一點。由于是合速度,我們需要定義一個統(tǒng)一個合速度以方便我們將x和y 軸上的速度分解出來為vx,vy。我們定義為speed; 那么在x軸方向上的速度應(yīng)為: vx=Math.cos(radians)*speed; 在y軸上的速度應(yīng)為 vy=Math.sin(radians)*speed;
代碼:speed=10; angle=15; radians=angle*Math.PI/180; onEnterFrame=function(){ vx=Math.cos(radians)*speed; vy=Math.sin(radians)*speed; my_mc._x+=vx; my_mc._y+=vy; }
演示:
通過演示你已經(jīng)發(fā)現(xiàn)小球已經(jīng)沿著15度的方向移動了。這樣angle相當(dāng)是一個接口參數(shù),你可以任意的對小球的方向進行控制。
出處:WebStudio
責(zé)任編輯:qhwa
上一頁 下一頁 加速度和重力
◎進入論壇Flash專欄 版塊參加討論