粒子系统要求支持浮点。blur算法网上有很多。
想了下,先发在自己的网站上了www.j2megame.com
我给个简单的思路:
1.选定粒子颜色红色和桔黄
2.定义粒子参数(强烈建议不要用float类型,建议使用Int,如果实在要用的话,请用MATHFP类库代替
,软件下载 里面有)
float lizi_x; //当前x坐标
float lizi_y; //当前y坐标
float lizi_Angle; //方向角度
float lizi_Velocity; //速度
float lizi_Acceleration;//加速度
float lizi_Life; //生命值
float lizi_Dec; //衰减速度
byte lizi_Colar; //粒子颜色 0红 1桔黄
3.给粒子赋初值,并建立数学模型:初始化粒子内各个变量.
下面是我根据一部分资料写的数学模型:
粒子运动最主要的两个属性就是速度和加速度
lizi_Velocity //速度
lizi_Acceleration /加速度
此外,为了更好的表示粒子的随机效果,采用了调整计算,如下:(摘录自火焰算法实现,这部分代码主要是改变角度和速度,然后再绘制到屏幕上)
Random_angle = RndNum * PI*2 偏航:随机的角度值,范围(0-360)
Random_rad = (RndNum * 180) *(PI/180) 斜度:随机的角度值(0-180)转换为弧度值
在X轴方向上的随机调整:Velocity.lizi_x = Velocity.lizi_x*Cos(Rndom_rad)
在Y轴方向上的随机调整:Velocity.lizi_y=Velocity.lizi_y*Sin(Random_rad)*Cos(Random_angle)
4.剩下的就是paint和repaint了,这样写 能在midp2.0/cldc1.1机子上跑,估计也很卡。