9RIA.com天地会 - 论坛

返回列表 发帖

天地培训

9RIA天地会官方培训机构

Adobe官方认证培训中心

[心得] 简单BitmapData粒子的实现(带源码)

本帖最后由 Ryanliu 于 2009-3-20 19:30 编辑

发了两个“说说BitmapData”帖子之后,一些同学希望能提供源码。这次我提供了另外一个例子的源码,代码能很清晰的体现BitmapData粒子的基本做法。至于如何从这个基本结构发展成这样那样的效果,大家可以自己琢磨下。这里是演示,四万个粒子的自由落体。
http://www.ryan-liu.com/demo/particle/pixel_animation.html

源码中主要分三个部分,BitmapData操作,粒子运算,和之前还没提过的BitmapData特效。BitmapData的像素操作在之前介绍过。BitmapData特效我打算以后专门举例讲解,而且这块不难,大家看源码就能理解。这里就简单说说粒子。

粒子运算可以抽离为两个部分,粒子的运动计算和粒子群的管理。粒子的运动就是最基本的物理运动,速度,加速度,动力,阻力。源码中我给出了一个最最简单的二维粒子类,用这个类可以做简单的二维运动计算。
  1. package com.ryanliu.geom
  2. {
  3.         /**
  4.          * @author Ryan Liu | www.ryan-liu.com
  5.          * @since 2009-3-19 22:41
  6.          */
  7.         public class SimpleParticle2D
  8.         {
  9.                 public var x:Number
  10.                 public var y:Number
  11.                 public var vx:Number
  12.                 public var vy:Number
  13.                 public var mass:Number
  14.                
  15.                 public function SimpleParticle2D(particleX:Number = 0, particleY:Number = 0, speedX:Number = 0, speedY:Number = 0, pMass:Number = 1)
  16.                 {
  17.                         x = particleX
  18.                         y = particleY
  19.                         vx = speedX
  20.                         vy = speedY
  21.                         mass = pMass
  22.                 }
  23.                 public function update() {
  24.                         x += vx
  25.                         y += vy
  26.                 }
  27.         }
  28. }
复制代码
这个类拥有最基本的五个属性,xy坐标,xy轴的速度vx,vy,和粒子的质量mass。质量不是必须的。但如果你想做一个生动的效果,还是留着它。不同的质量才会有不同的加速度嘛。本例中是一个最常规的运动——自由落体。

粒子群的管理也不是什么复杂的事儿,通常情况用数组保存,用for来遍历操作就好了。需要注意的是,因为粒子数量是灰常大的,所以粒子计算时有丁点儿不够优化的地方,对执行效率的影响也会很大。有人问过不做lock和unlock好像执行起来也没影响性能,那是因为操作量不够大。本例里,在600x450的BitmapData上画40000个粒子,你可以清楚的看出锁和不锁的差别。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

  • yangxin

  • ycccc8202

yangxin 赐本贴 银子 + 10  诏曰: 40000个精彩粒子
ycccc8202 赐本贴 银子 + 12  诏曰: 好也~

天地人才库
哈哈,太好了

TOP

SWFProfiler是什么类?楼主能否说明下具体的作用或者粘贴下参考资料……
山穷水复疑无路、柳暗花明又一村!

TOP

好兄弟,讲义气!---by eko

踏上天地会荣耀之路!

 

申请舵主

加入掘金队

加入译林军

知识专题整理

 

咨询(QQ):

1442604479(小地)

 

顶!·····

TOP

太好了 ,简单易学,,,
不顶都不行!

TOP

一定要顶!!……

TOP

SWFProfiler是什么类?楼主能否说明下具体的作用或者粘贴下参考资料……
龙行客 发表于 2009-3-21 10:47



SWFProfiler

http://www.ryan-liu.com/blog/?p=371

TOP

强大又实用的东西~~

TOP

很好  很强大!~

TOP

帅啊。。。。。。。。。。。
若不到位,就没味道!

TOP

帅气。。。。。。。。。。。

TOP

TOP

天呀!好利害呀!感謝了收下研究

TOP

灰常好 灰常强大
鸡蛋永远也不知道狗的乐趣;袜子破没破只有自己的脚知道~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TOP

谢谢分享

TOP

返回列表