高级执事
阅读权限 2
积分 3663
侠名
UID 18
主题
帖子
精华
好友
银子
金子
贡献
威望
推广
活跃
荣耀
注册时间 2017-11-7
最后登录 1970-1-1
在线时间 小时
个人主页
|
【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 TKCB 于 2019-3-19 09:10 编辑
转载:9RIA游戏开发者社区(天地会)
作者:iloveas(大神)
总目录:[原创]AS3游戏开发实用技巧汇总
擦除是一类蛮有意思的游戏,在iloveas刚注册9ria的时候就看见有朋友在问答区里讨论相关的技术:
http://bbs.9ria.com/thread-225367-1-1.html
最佳答案给了一个用getPixel32进行暴力判断的demo。嗯,这方法确实很精确,效率也还不错,但是iloveas总感觉缺少了点什么,也许就是大家现在常挂在嘴边的“逼格”了。
这种需求的难点在于不能以100%作为完成的标准,就好比橡皮擦不能把铅笔字给完全擦干净一样,多少都会残留一点痕迹。在游戏里面我们也要把这种情况模拟出来,不然玩家可能要在那剩下的1%上面浪费不少时间。这也就是当年那位大神需要用暴力循环的原因之一。
类似的游戏还有刮奖,iloveas现在给出一个demo,其实只要把刮奖卡里的数字部分擦出个80%左右就知道自己拿的是什么奖了,而不必把整个刮奖区都擦完。
只要红色矩形框住的区域被擦除的差不多(半透明的点也算一部分完成度),界面中就会告诉玩家所得的奖项。
理论上,限制矩形区域,用暴力法也一样能得到结果。但实际上,我们有更简便的做法,只需要一行代码就能替代:
虽然这行代码的运行效率不见得比getPixel32好多少,但是它在处理半透明像素点方面非常好用。
这个api只能支持矩形区域,想要支持不规则形状的话,还得结合其他的位图技巧,这些你们将会在iloveas即将出版的《点睛:ActionScript3.0游戏互动编程》一书中学到更多,敬请期待!
iloveas今天介绍的api比较偏门,所以我相信知道的人不多,而且即使知道,也不一定能想到这api原来还能用到这样的需求上。所以我肯定得设置下......不说了,大家都明白。
然后也放上这个swf的源文件。纯代码,一个类,放Flash,FD,FB里都能编译。
类似的游戏还有iloveas的参赛作品:
http://bbs.9ria.com/forum.php?mo ... 9&page=3#pid3242374
游戏名字叫《我擦,我擦,我擦,擦,擦》,不过是一晚上赶出来的,很多东西没优化好,凑合着看吧。
不经意间,实用技巧系列已经写到了第20篇。本帖可能(注意是可能)会是这套教程的收官之作。藉此机会,iloveas来给大家聊下自己的一些想法。
其实iloveas不是个懂游戏的人,但却很容易被游戏里各种华丽的特效所吸引,所以iloveas一直希望制作一些以特效为主导的游戏,也就是把效果类的元素融入到游戏的核心玩法当中,从而给玩家不一样的视觉体验。正因如此,某游戏专家曾经给予这些作品的评价是“除了美术就没有别的卖点了”。这也就意味着iloveas的游戏没有乐观的商业前景。不过话说回来,能做出自己的特色并得到大家的认可,iloveas就已经相当满足了。
如今,iloveas也想到手机领域逛逛,然而在通往移动端的道路上,iloveas遇到了各种难以清除的障碍。
最初打算往Starling的方向发展,但是agal的限制决定了我无法通过GPU直接修改纹理数据并且在显存里直接更新,对于每帧都要改写位图的需求来说,iloveas只能先在CPU里处理好,然后再上传到GPU进行显示,但这么一来,效率就还不如直接用CPU渲染。
粒子系统是个好东西,只是要让粒子跟游戏玩法有交互的话,我还是得让CPU参与其中,不然对iloveas来说,这跟序列帧动画已经没太大区别了。
本来可以通过循环弥补一些不足,大不了在agal里多循环几十次,但很遗憾,agal不能写循环。
当然了,以上都是iloveas在agal1时代的一些想法,可能agal2已经改善了不少,只是iloveas还没去看。
不得不承认,iloveas在Staling/Stage3D方面还没打好基础,所以才会觉得很多东西实现不出来。
然后就是H5了,Canvas很不错,用好了它能实现很多绚丽的位图特效,只是iloveas比较懒,没去学它,又据说Egret,Layabox之流可以帮助AS3er们平滑过渡到H5。嗯,那我等一下工具好了。不过有时间也去学学,没点基础,拿到工具了也不会用。
至于cocos和u3d,对iloveas而言实在是太高端了,玩不转。但听说u3d可以写shader,只要算法足够强,啥特效写不出来呢?当然了,短期内还是先不搞这两样。
但不管iloveas以后的路怎么走,我都会像自己的昵称一样爱着as,无论你贫穷还是富有,健康还是有Bug,我都愿意用自己的生命一直守护着你,对你不离不弃,与你共度余生,直到死亡将我们分开。
|
|