页游特效笔记,滤镜,位图序列

本文探讨了Flash游戏中的特效实现方式,主要包括位图序列、滤镜和粒子特效。详细介绍了滤镜的工作原理及其在项目中的应用,同时分析了不同特效算法在Flash平台上的表现。

最近在研究特效方向,想来想去脑子太乱,弄个笔记梳理一下也好。这里谈到的特效不包括客户端游戏的内容,两码事了。

 

flash游戏中特效不外乎粒子,滤镜,位图序列三种,其实主要是针对bitmapdata的操作。

 

位图这块比较繁琐,实现各种效果的算法也非常多,很多都从c、c++的游戏特效算法中引入的,不过很多水土不服,因为flashplayer效率太低了。

目前来看大部分用的还是位图序列 + 少量的滤镜,粒子特效目前看来效率上很不允许。

 

针对位图序列:很简单, 写一个可以循环播放图片序列的模块就行了,不过与之配套的有图片的动态切割类,图片存储转化类等辅助单元,基本上很简单。

 

对于滤镜既简单又麻烦,简单的是flashAPI有10中滤镜可以直接使用,一些简单画面、文字特效很快能实现,麻烦的是一个项目中滤镜用多了会带来效能问题,并且实现很复杂特效的滤镜算法很有看头,或者说很费精力去研究。

 

还是谈滤镜吧,这玩意比较有意思,小时候家里一台佳能相机就有好多滤镜,放在镜头上的,估计原理是一样一样的哈哈。

 

我对flash里的滤镜理解源于API中bitmapdata的draw方法,请看描述:

      源显示对象不对此调用使用其任何已应用的转换。 它会被视为存在于库或文件中,没有矩阵转换、没有颜色转换,也没有混合模式。 

 

所以,滤镜效果不是加在源图像上的,每个现实对象在flash中都被保存为两份,一份是原始现实数据,一份是副本。当你对一个图像加滤镜时

只体现在这个副本上,最终显示的也是这个副本的显示效果。但跟程序交互运算的还是原始图像数据,例如draw()方法。不知道我这样理解贴切否?

 

当然这个副本(可以说缓存)我们是可以设置的,cacheAsBitmap属性想必都用过,这个设置的缓存就是前面提过的副本。

问题来了,如果把这个属性设为falsh,是否还可以加滤镜效果?当然可以,不过系统会把cacheAsBitmap设置回true。

 

 

现在看下10个滤镜,斜角,投影,发光,模糊,渐变斜角,渐变发光,这六个滤镜属于基础滤镜,除了在代码里外,在flash cs里也可以直接打开面板使用。

另外的4个滤镜比较麻烦,并只能在as代码中使用,分别是颜色矩阵,卷积,置换图,着色器。这四个滤镜的特点就是都不是为了某一种效果设定的,通过滤镜属性值的变化可以演变出很多效果,所以比较晦涩一些。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值