J2ME 手机游戏粒子系统实现的1个思路

本文介绍了一种简单的粒子系统设计思路,包括选择粒子颜色、定义粒子参数,并给出了基于速度和加速度的数学模型。还讨论了如何通过调整角度和速度来增强粒子效果的随机性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

粒子系统要求支持浮点。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机子上跑,估计也很卡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值