as3採用效果演算法

2021-06-05 02:47:40 字數 1452 閱讀 4339

一、

速度與加速度

速度即目標向某個方向移動的快慢,在座標系裡面有x軸和

y軸速度。用vx和

vy表示。設某個物體為

ball

,則ball

移動的速度為:

ball.x+=vx;

ball.y+=vy;

加速度即改變速度值的描述,一般用ax、

ay表示。帶上加速度的

ball

的運動表示如下:

vx+=ax;

vy+=ay;

ball.x+=vx;

ball.y+=vy; 二、

摩擦力摩擦力即阻礙運動的力,在運動演算法裡面表現為減小現有速度。設摩擦力為

friction,

則有速度為

speed,與x

軸的夾角為

angle

。則有:

speed=math.sqrt(vx*vx+vy*vy);

angle=math.atan2(vy,vx);

再根據判斷確定

speed:

if(speed>friction)else

應用到ball

裡面則有:

vx=math.cos(angle)*speed;

vy=math.sin(angle)*speed;

ball.x+=vx;

ball.y+=vy; 三、

緩動緩動即物體在移向某處時速度逐漸慢下來,一般的即從大速度到

0,明顯緩動時的速度與和目標點的經歷有關係。一般的設目標點為(

targetx,targety),

速度為vx和vy

,物體為

ball

。則緩動演算法如下:

vx=(targetx-ball.x)* parameter

vy=(targety-ball.y)* parameter

ball.x+=vx;

ball.y+=vy;

因為直接用目標點座標減去球座標會導致初速度過大,所以一般乘以乙個小於

1的引數。將以上**加入到

enterframe

處理器裡面便可實現緩動。 四、

彈性彈性和緩動類似,彈性就是從

0到大速度再由大速度到

0的迴圈過程。引數設定和緩動一樣。所以一般的彈性**如下:

ax=(targetx-ball.x)* parameter

ay=(targety-ball.y)* parameter

vx+=ax;

vy+=ay;

ball.x+=vx;

ball.y+=vy;

緩動時通過加速度控制速度的,在經過目標點時速度最大。球就會繼續向前移動,但是超過目標點後ax、

ay為負數了,vx、

vy也就會減小了。直至速度為

0,此時加速度為反方向最大,從而球又會向目標點移動。從而迴圈下去達到彈性的效果。

關於as3運動效果的總結

看了 actionscript3.0高階動畫教程 一書,用類對映的方式做了乙個小東西,方便學習,經過幾天發現了一些as3 動畫的小技巧,下面我們一起分享一下。所有的運動都借助幀事件或定時器來做,可以只使用乙個幀事件或乙個定時器來完成所有運動的監聽和運算,節省開銷。運動是變化,它的普遍做法是 第一初始...

Tween類,flash緩衝效果講解 as3 0

最近做的東西,對於效果程式設計比較多,特別是緩衝,加速度等效果,特意研究了一下tween類,過年沒什麼禮物給大家,寫篇教程分享給大家,算是過年送給大家的新年禮物!下面是官方寫的fl.transitions.tween類 可以先嘗試看一下這段 的寫法,用這個方法去看 從建構函式看起,假設我使用了該類 ...

Tween類,flash緩衝效果講解 as3 0

最近做的東西,對於效果程式設計比較多,特別是緩衝,加速度等效果,特意研究了一下tween類,過年沒什麼禮物給大家,寫篇教程分享給大家,算是過年送給大家的新年禮物!下面是官方寫的fl.transitions.tween類 可以先嘗試看一下這段 的寫法,用這個方法去看 從建構函式看起,假設我使用了該類 ...