Leonids 粒子系統原始碼分析

2021-08-01 06:24:00 字數 999 閱讀 4390

用第一例子oneshot為例子:

public void onclick(view arg0)

所有點都畫在particlefield上了,這是乙個view。

mactiveparticles 存放所有點的座標資訊,速度。。。

valueanimator是動畫產生的原理,每隔一幀時間,會觸發事件。這個事件定義成,改變所有的座標值,重繪particlefield。

private void onupdate(long miliseconds)

synchronized(mactiveparticles) }}

mdrawingview.postinvalidate();

}

private void 

startanimator(interpolator interpolator, long animnationtime)

});manimator.addlistener(new animatorlistener()

@override

public void

onanimationrepeat(animator animation) {}

@override

public void

onanimationend(animator animation)

@override

public void

onanimationcancel(animator animation)

});manimator.setinterpolator(interpolator);

manimator.start();

}

第二個例子,加速度掉下來。要手工計算

x=v0t+1/2*at^2

mcurrentx = minitialx+mspeedx*realmiliseconds+maccelerationx*realmiliseconds*realmiliseconds;

CCParticleSystem粒子系統

第一次接觸粒子系統,以前遊戲裡面的一些小特效,像製作動畫一樣,是採用一幀一幀的切出來的,由於這種特效,變化無常,切出來的幀,都非常的大,也很耗記憶體,一下就記憶體溢位了.呵呵 主要是以前都沒有接觸過.現在接觸了,以後遊戲就可以用到了.開心 建立乙個ccparticlesystem粒子系統 ccpar...

Unity粒子系統

首次接觸unity的粒子系統,內容太多,搞得都不好寫筆記,所以就記錄下unity的粒子系統做出來的東西以及經常用的一些引數。火焰效果製作 這個相對簡單 建立粒子系統物件 1 調duration 1 開啟loop start size 1 start lifetime 1 start speed 1 ...

Unity粒子系統

rateoverdistance 隨著移動距離產生的粒子數量。只有當粒子系統移動時,才發射粒子。bursts sprite 通過相同尺寸的sprite實現粒子動畫。tiles 網格的行列數。animation startframe 開始的幀是哪一幀。flipu 翻轉u。flipv 翻轉v。enabl...