找回密码
 点一下
楼主: Renee

[已增加局域网传播版]初版~~Bad Apple像素动画War3版,每帧10800像素,即时速度带音乐

[复制链接]
发表于 2010-1-13 13:36:12 | 显示全部楼层
真笨。
回复

使用道具 举报

发表于 2010-1-13 13:40:35 | 显示全部楼层
引用第79楼zjwzero于2010-01-13 13:02发表的  :


SC2 的...
原来如此……
回复

使用道具 举报

发表于 2010-1-13 14:10:25 | 显示全部楼层
唔,才1天就突破了5000下载量,真是惊人地受欢迎啊……
回复

使用道具 举报

发表于 2010-1-13 14:33:03 | 显示全部楼层
原来头目的机器比我的快……
回复

使用道具 举报

发表于 2010-1-13 14:54:16 | 显示全部楼层
小霸王吸引力无穷!
回复

使用道具 举报

发表于 2010-1-13 20:06:42 | 显示全部楼层
感謝樓主分享~~ 製
作這影片應該不太容易吧!
有點想知道製做方法是如何~~

....順便跪求轉載 感謝~
回复

使用道具 举报

发表于 2010-1-13 20:57:49 | 显示全部楼层
ACFUN前来~~~~~~~
回复

使用道具 举报

发表于 2010-1-13 21:52:30 | 显示全部楼层
太强大了。。。。。
有点卡  细节看不到
回复

使用道具 举报

发表于 2010-1-13 22:06:04 | 显示全部楼层
统计不包括空格字符数1000W+...
回复

使用道具 举报

发表于 2010-1-13 22:09:33 | 显示全部楼层
原来已经上ACFUN了。。
回复

使用道具 举报

发表于 2010-1-13 22:16:02 | 显示全部楼层
uuu9,wow8,youku……貌似已经传遍全世界了呢……
回复

使用道具 举报

发表于 2010-1-13 23:46:02 | 显示全部楼层
正在进一步优化中,目前正在拿羊的电脑做试验品。
回复

使用道具 举报

发表于 2010-1-13 23:50:13 | 显示全部楼层
Acfun那还撞车了恩

http://www.nicovideo.jp/watch/sm9367824

nico...应该很少有人知道War3吧,虽然以前看到过11区研究DOTA的站
回复

使用道具 举报

发表于 2010-1-14 00:54:02 | 显示全部楼层
完全看不懂日文只看到一群人在哇哇叫~~
回复

使用道具 举报

发表于 2010-1-14 02:07:06 | 显示全部楼层
哇哇
回复

使用道具 举报

发表于 2010-1-14 04:00:33 | 显示全部楼层
半夜逛BAIDU贴吧,偶尔看到的帖子,刚注册的算是新人吧,
打开J文件看了一下,因为楼主解释了是2屏幕操作,所以我就看了一个函数,下面个X2类似
算法挺简单的,
现将我所理解的说一下吧,在教程没出来前
用的方法是用整型记录图片是否显示信息
将屏幕半分,也就是120*45=5400张
半分屏幕 用数组记录,分为5400 / 30 = 180组,并初始化了用于优化显示代码的状态数组
每组记录了30张图片显示信息,记录类型2进制
从记录的整型值得2进制低位开始读取
循环说明
当读取数不等于0时
与原状态码对比,相同则不操作,不同则显示,并记录状态码
循环30次结束,刚好30张图片信息读取完成并显示
进入下一组数据循环
全部结束计算下半屏幕,同理。

总结一下,用机器写码的非常快,判断完位图图像自动写码就行了
估计初次优化肯定是去除了相同的记录数组
暂时这种方案只能记录黑白色块。
如果记录彩色信息,推荐使用色板记录方法,256色足够使用,类似于早期的家用游戏机游戏的图像控制技术。
以上纯属个人观点。
回复

使用道具 举报

发表于 2010-1-14 09:21:01 | 显示全部楼层
引用第95楼seenbook于2010-01-14 04:00发表的  :
半夜逛BAIDU贴吧,偶尔看到的帖子,刚注册的算是新人吧,
打开J文件看了一下,因为楼主解释了是2屏幕操作,所以我就看了一个函数,下面个X2类似
算法挺简单的,
现将我所理解的说一下吧,在教程没出来前
用的方法是用整型记录图片是否显示信息
.......

不错。

总体来说,之所以只用30位记录而不用32位(integer上限)记录的原因是,jass并没有真正的位操作,所以除以2取余数和按位分割其实是不同的。

先不说计算效率上比位操作差一截,最大的问题是,如果最高位是1,那么这个数就是负数,当它去除以2的时候,结果始终是0。虽然可以让jass对负数进行特别处理,但是jass的运算效率太低,因此不值得在这里耗费时间复杂度。

另外其实你说了商不等于0的情况,但是其实除到商等于0的时候还是得继续完成那30次循环操作,只是以后的位数肯定是0,所以无需再重复计算直接做黑化操作就可以。(其实这部分同样可以用当前状态的判断来加快渲染速度,我当时给忘了。)

其实最初是128X96,正好也是每行4个数组。变成120X90后,只每30位保存一次。那么还是每行4个数组。

每个数组的值用16进制表示,这是为了减少代码容量。

虽然jass的模2法和c的位操作完全不能相比,但比jass自己的字符串操作还是高效得多,截取字符串的方案完全不可行。

另外要注意的是,这30位并不能按照从图片中取出的顺序来转换为2进制再转换为16进制。而是要倒置后再转换为16进制。原因在于,用模2法得到的结果必然最先是2进制位的最后一位,也就是说,如果按照这个顺序循环描绘图片,那么每30位的显示顺序都是颠倒的。就像上面一样,这里的倒序操作虽然可以让jass来处理,但同样基于jass的运算效率太低的原因,不适合放在每0.06秒刷新一次的动画里。

然后其实每次描绘都分两个函数也是有原因的,并不单单因为10800个对象超出了单个数组的上限,另一个重大原因是jass的每个函数执行操作的条目数是有限的。而且那个限制还非常的小,当单个函数(中途未经等待或者调用其它触发器)执行条数超出上限时,该函数就会永久挂起。

于是,在对10800个对象进行操作时(还附带多重判断),很容易就发生只画了半屏就停了的情况,但这里显然不能用等待,因为等待0秒相当于0.125秒,对于每0.06秒就要刷新一次的这个地图来说根本不可采纳。于是这里建了一个新触发器对下半屏进行描绘。


当然这个只是初版地图在绘图方面的算法。其余部分还有不少要点。




============

不过在二版中我已经放弃这个算法了,二版大概过一两天就会出来。
回复

使用道具 举报

发表于 2010-1-14 12:24:02 | 显示全部楼层
二版……难道还有更强大的么?
回复

使用道具 举报

发表于 2010-1-14 13:24:04 | 显示全部楼层
二版…………
不是一般的喔,是二班的喔。
回复

使用道具 举报

发表于 2010-1-14 16:16:08 | 显示全部楼层
呜呜呜,简直就是。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 09:09 , Processed in 0.383770 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表