章节出错了,点此刷新,刷新后小编会在两分钟内校正章节内容,请稍后再试。
“嗡……”宋一凡的电脑发出恐怖的呻吟,风扇声大的整个工作室都能听到。坐在旁边的俞亮好奇的伸过头去看了看,惊讶的道:“老宋,你这就把游戏跑起来了?你这进度也太快了吧?给我和李雷点时间啊!”“跑起来啥啊!还早呢!”宋一凡有些烦躁的关掉游戏窗口,咬着下嘴唇不知道在想些什么。过了一会,他又打开编程窗口敲了一阵代码,然后又打开游戏,结果恐怖的风扇声再次响起。
张帆听到后面的电脑和抽风一样,也不知道宋一凡在搞什么名堂。他站起身来到后排,看着宋一凡再次浏览了一遍程序窗口,然后闭着眼睛捏着眉心,张帆伸手拍了拍宋一凡的肩膀道:“老宋,别着急,什么情况?说来听听。”
宋一凡一指旁边的椅子示意张帆坐下,然后重新打开游戏程序道:“我现在遇到个很严重的问题,而且暂时找不到解决方案。”说着侧开身子,演示给张帆看。
不得不说,李子悦虽然性格比较冷淡,不太跟大家交流,但工作效率是真没的说。2月底宋一凡刚刚把地图编辑器交给他,这才过了不到十天,李子悦就已经将五张制作好的地图交到了宋一凡手里。而俞亮和李雷被张帆安排制作物品编辑器后,宋一凡则更进一步,开始了游戏主程序的编写。
宋一凡操纵着游戏中的人物在地图里走了几步,张帆眼尖,一眼就看到人物的动画其实还没做好,插入进去的只是一张图片。
正常来讲,一个成熟的2D游戏,人物的动作应该是由一连串的帧动画组成的。比如《太空牛仔》中的三名牛仔,李子悦就为他们设计了“迈步”“站立”“攻击”“防御”“受到攻击”等等好几种姿态的数十张图片。这些图片组成的帧动画可以做到一个人物在游戏中组成一个连贯动作,最终形成了在屏幕上显示出来的样子。
不过宋一凡为了简略,这时还没有将整张动画插入进游戏里,所以现在张帆看到的是一个人物图片,和幽灵一样在地图上“闪现”,宋一凡每按一下前进键,人物就在屏幕上“窜”出去一截,看起来别提多别扭了。
不过张帆知道,这种情况其实并不是BUG,而是宋一凡为了前期开发测试的需要故意这么做的。刚刚宋一凡搞出这么大的动静肯定不是因为这个,于是张帆也没说什么,静静的看着宋一凡接下来的操作。
宋一凡将游戏调出来,控制着人物在地图上“溜达”了两个来回后,说道:“张帆,你注意看。”说着他按住向前行走的“→”键,控制着人物朝前走去。
刚开始还看不出什么,随着人物走出第一块屏幕控制的边缘,问题开始出现了。先是屏幕的刷新和人物不同步,有一种地图中的背景图片好像慢了半拍出现在屏幕上一样。随后,屏幕上的地图开始出现了花屏和卡顿的情况。等到了最后,干脆就没有什么地图了,屏幕中只能显示出一些大概的轮廓和色块,整个地图变成了一团糟。
张帆听着宋一凡的电脑风扇声音明显变大,知道这是CPU温度又过高了。他示意宋一凡关掉游戏程序窗口,摩挲着下巴想了一会道:“看起来是电脑加载地图出了问题?”
“应该是,我检查了一下美术素材,地图应该没问题。”宋一凡说着用地图编辑器将刚刚演示需要的地图打开,给张帆看。
“怎么了?地图有什么问题?”李子悦听到张帆和宋一凡谈论地图的问题,忙跑了过来。
“没事,应该不是你那边的事。”张帆一边说一边看着地图编辑器里的地图。李子悦绘制的地图都是16位色的“高档货”,现在的市面上的游戏别说16位色了,有的还只有4位色。张帆盯着地图想了想,心说会不会是电脑性能的问题?
90年代的电脑可不像后来电脑性能那么逆天。这时候的电脑性能不够是常有的事。在CPU圈子经常提起的一个名词:“超频”,其实就是说的在计算机行业早期,由于电脑的硬件性能不足,一些“搞机大神”选择将CPU的频率超频,让CPU的工作频率超过它额定的最高频率,以便最大程度的压榨CPU的性能。
而面对性能如此弱鸡的电脑,张帆当然有理由怀疑,是电脑的问题导致了图片显示失败。
“老宋,把游戏给我拷一份。”张帆回到自己桌上拿了一张软盘过来,准备彻底检查一下代码再说。这个问题如果不解决,根本就没法进行下一步开发了。
宋一凡将游戏拷进软盘交给张帆,张帆回到自己的座位上打开一看,由于只是一个小小的演示版,因此大小只有不到500kb,可就是这500kb的小东西让整个电脑都超负荷了。张帆再一次感慨了一下当前电脑弱鸡的性能,然后把游戏跑起来,准备在自己的电脑上“复现”宋一凡刚刚出现的问题。
张帆把游戏运行起来,和宋一凡刚刚演示的一样,按住→键往前走。可能是他的电脑运行的软件比较少的缘故,最开始的两个屏幕并没有出现卡顿,但随着时间的流逝,卡顿逐渐出现。先是背景图片刷新慢,然后渐渐变得图形紊乱。
张帆等到背景图有点紊乱时让人物停止移动,然后等了一会。只见整个背景仿佛追着人物刷新一样,又陆陆续续的加载了出来。可当他再让人物朝前走时,又出现了背景刷新慢的问题。看来游戏本身的美术资源和代码都没问题,就是电脑的计算能力不行导致的游戏内容加载不出来。
不过比起代码问题,这个问题更让人头疼。张帆双手抱胸盯着屏幕,脑袋里回忆着前世看过的种种资料有没有解决这种问题的答案。
在张帆的前世做游戏时,已经是2010年以后了。再说他当时做的是手游,本身玩的就是“短平快”,根本不会对手机或电脑性能做什么压榨。张帆咬着嘴唇琢磨了一会,觉得还是得从一些“上古大神”的回忆录里找解决方案,于是他再次搜肠刮肚的想了起来。
“张帆,你来看看。”宋一凡这时又喊了张帆一声,张帆起身来到他身后看了一会,有些失望的摇了摇头道:“这么搞肯定不行,只要不能实现平滑的横版卷轴移动都不行。”
原来,宋一凡在程序里加了一个“时间限制器”。即在人物走到屏幕的边缘时,会触发计时器,先让人物停留在边缘,然后电脑开始加载另一个屏幕的图像,等到全部加载完了再让人物前往下一张地图。
这么做虽然解决了图像紊乱问题,可张帆这款游戏设计的可不是什么解谜游戏,而是一款类似于超级马里奥的快节奏的横版卷轴冒险类游戏,这种慢吞吞的节奏肯定不可能接受。
不过说到超级马里奥,张帆突然感觉自己抓住了点灵感。按理说从机器性能上来讲,当年的FC游戏机的机器性能远远不如现在的电脑。虽然说当时的美术素材比较粗糙,不如李子悦画的这种真彩占用资源,但既然FC上的超级马里奥都能实现平滑的卷轴效果,现在的张帆想想办法应该也能实现。
他回到座位上,用手控制着游戏中的“牛仔”在一块屏幕里漫无目的的走着,一边想着该怎么解决这个问题。
张帆盯着屏幕上的小人看了一会,突然发现了一个问题。那就是在人物移动时,其实有一部分场景只是改变了位置,而没有消失。
举个例子来说,如果现在有一块石头出现在屏幕的最右边,这样当人物往前走(在屏幕中是往右移动)时,这块石头实际上是从屏幕的最右边缓缓往左移动,最后移动到了最左边。在整个过程中,这块石头并没有离开屏幕,也就是说不需要“重新加载”,而是只需要保持显示就可以了。
张帆又打开代码看了看,宋一凡的编程没什么问题,但他也并未对这方面进行特殊的限制。现在的程序是按照固有的频率,对屏幕上显示出的所有像素点以一定顺序进行绘制,无论是新出现在屏幕中的,还是屏幕中原本就有的画面。
张帆突然想到了一种可能:能不能采用一种代码控制的手段,让计算机每次只“绘制”实际新出现的那些画面,而对原有的,改变位置的画面不进行绘制,而只是保留他们呢?
再进一步的话,既然人物朝前走时后面的画面已经消失在了屏幕中,那张帆觉得完全可以让计算机只专注于绘制即将要新出现的画面,而那些已经消失在屏幕后面的画面则直接砍掉,不进行处理就好了。这样一来会极大地解放CPU的运算能力,让CPU专注于“新画面”的绘制。
张帆想到了就做,他调出了编程窗口,一边看着宋一凡原有的代码,一边思考如何才能通过代码来实现这种效果。