接part1的單執行緒畫線,今天要實現的內容是將part1實現的畫線加上重力和速度的影響,使之符合現實生活
具體的實現形式是讓單執行緒畫出來的線像丟擲乙個小球那樣,會進行墜落
0.001ms
)為間隔,在螢幕上的位置,我們看起來,就是一種連續的感覺。
模擬現實中物理運動狀態,每一時間點上物理的位置,由運動所處的時間點、速度、重力加速度決定。這裡我們採用的公式是尤拉方法
(euler method)
。這個公式的運用就是實現乙個粒子系統的關鍵所在。
位置向量為
、速度向量為
、加速度向量為
我們希望從時間
的狀態,計算下乙個模擬時間
的狀態。
如圖,從a點到b點經過t時間,我們就需要計算出t時間中每乙個點的位置,為了方便向量計算,定義vec2f類,這個類的每乙個物件,代表乙個點;這個點可能是位置、速度或重力,只要給定了起始點,速度,重力三組值,套用如上公式,就可以計算出圖形運動t時間中,每一步的位置
package aline;
public class vec2f
// 向量加
public vec2f add(vec2f v)
// 向量乘
public vec2f multiply(double f)
public void setx(double x)
public void sety(double y)
}
修改之前part1的**,將其***中的actionperformed方法修改如下:
是不是很神奇
可以調節向量類中的引數實現不同的效果!
傳送門:從粒子系統到群體智慧型 part1
從粒子系統到群體智慧型 part4
我們想要實現以下的效果 粒子逐漸變大,而且產生了漂亮的漸變色,並且在撞擊窗體邊緣時產生彈的效果 public int i 2 int x,int y,int size else if y 0 y size 600 else return 0 if i 2 int position.x,int pos...
CCParticleSystem粒子系統
第一次接觸粒子系統,以前遊戲裡面的一些小特效,像製作動畫一樣,是採用一幀一幀的切出來的,由於這種特效,變化無常,切出來的幀,都非常的大,也很耗記憶體,一下就記憶體溢位了.呵呵 主要是以前都沒有接觸過.現在接觸了,以後遊戲就可以用到了.開心 建立乙個ccparticlesystem粒子系統 ccpar...
Unity粒子系統
首次接觸unity的粒子系統,內容太多,搞得都不好寫筆記,所以就記錄下unity的粒子系統做出來的東西以及經常用的一些引數。火焰效果製作 這個相對簡單 建立粒子系統物件 1 調duration 1 開啟loop start size 1 start lifetime 1 start speed 1 ...