粒子效果初试-喷射方向

 

为主角增加特殊技能火焰箭, 需要用到粒子系统
以前看的例子中有做好的粒子效果, 于是直接搬来用

目前我理解的粒子系统, 是一个发射器, 按照一定的规律向周围发射粒子(方向, 速度, 衰减, 颜色)
发射器同时发射n个粒子, 待粒子衰减后, 回收, 继续发射, 就能实现比较炫的效果

cocos2dx的粒子系统, 是由一个png图片和一个plist文件组成, 和tiled_map有点类似.
png图片定义了粒子的纹理, plist定义了粒子系统的特点, 入发射规律

用喷射粒子来模拟飞行的火箭, 难点就是控制喷射方向
首先,要把喷射的初始方向设为x轴正向
_jet->setAngle(0); 
然后,假设飞行方向的向量是vec, 则粒子系统的方向要设置成

_jet->setAngle(atan2f(vec.y, vec.x) * 180 / 3.1416 + 180); 

_jet->setRotation(atan2f(vec.y, vec.x) * 180 / 3.1416); 
角度和旋转为何要相差180度, 是因为喷射方向和运动方向是相反的
顺便提一下, 普通的箭的旋转公式如下
arrow->setRotation((-1.0) * vec.getAngle() * 180.0 / 3.1416);
箭的图片的原始方向也是x轴正向

用爆炸粒子来模拟火箭的爆炸
当火箭到目标的距离的平方小于3时(必须小于3), 关闭喷射粒子, 触发爆炸粒子
千万不要设置爆炸粒子的setSourcePosition, 只能设成(0, 0)
因为这个属性貌似是规定喷射点到粒子系统的偏移的, 一开始我脑残的设了一下, 结果很费解, 卡了几个小时

自己制作粒子效果可以用ParticleDesigner, 以后需要了再用 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值