当前位置: 华文问答 > 游戏

FC 魂斗罗的背景为何都是黑色的、夜晚的感觉,是为了省内存么?

2017-07-27游戏

此答案已经高清重置,请移步

以下是原答案

四更了

补充一下平机王作者的答案。

fc游戏的画面组成,简单来说就是1个背景层+64个8*8像素的活动块。

找了张超级魂斗罗的图(小时候穷,家里没有魂斗罗,只有超级魂斗罗,打过无数遍)。

大家可以看到,这个直升机boss,如果单纯用活动块来组成,那么,64个活动块是远远不够的!

所以,聪明的制作人想出了一个奇技淫巧,就是用 背景层 来做boss。

因为这是背景层,并且fc只支持一层背景,只要它移动,就是整个画面都在移动,所以只能用纯色的背景,不然就露馅了。比如说,如果画面上多了一个月亮,那么,直升机在动,月亮也会跟着直升机一起动。

而且,黑色又是看起来最「正常」的颜色(可以强行解释成夜晚),所以fc大部分巨大boss都是晚上打的。

当然,也不一定要黑色,比如

你们以为自己打的是敌人?其实打的是背景。

补充
本来只是想补充一下平机王作者的答案,没想到大家都赞我了,那就再补充点内容吧。

大家看这2张图

这张图是有背景的,就是天上那些云(其实严格来说,地面 楼房 云都是背景)

然后走过这个房子之后

背景就变成纯黑的了

这就是为了用背景绘制boss,把背景的其他东西都去掉了

然后,打完boss之后

果然,云又回来了……

另一个关键点是,fc活动块是64个,但是同行活动块最多8个,如果同行超过8个,就会出现闪烁现象。

也就是说宁可让一些活动块消失,也要让同行活动块控制在8个以内。

再回到这个图

可以很直观地看出,这些小兵,由于超过同行活动块的限制,产生闪烁,变得残缺不全。

再回到这关的直升机boss

之前说过,boss是背景,但是boss身上的组件有可能是活动块,比如说boss身上的炮管。

那就测试一下吧

看准,起跳,截图

成果如下

没有闪烁!没有闪烁!

炮管如果是活动块组成,一个活动块的像素是8*8,那么一个炮管至少要2*2个活动块叠加,人物也要2*2个活动块,再加上爆炸产生的那个冲击波,同一行至少要12个活动块,远超过了同行8个的限制,肯定是会产生闪烁的。

所以,直升机就是100%背景构成的。

有位网友 @Winston qiu 说,为什么会产生闪烁现象,在这就稍微说一下。

我们先来个找茬游戏。

无奖竞猜,大家能找出3张图有几个区别?

前面说过,宁可让活动块消失,也要使同行活动块控制在8个。

但是,总不能让同一个活动块消失,不然敌人都隐形了,那怎么玩?(而且第一张图是让子弹消失,那就要命了,怎么死的都不知道)

那怎么办?轮流来呗。

fc的画面是每秒60帧,这一帧让这几个活动块消失,下一帧让那几个活动块消失,谁也不吃亏。
你消失一下,我消失一下,看起来就是闪烁的感觉了。

不要问我为什么主角颜色那么奇怪,我会告诉你我用触摸屏玩不开无敌根本打不到关底吗?

再次补充

评论区有个眼尖的网友 @Trueng Charlie 看出问题来了,如果直升机和地面都是同一层背景的话,为何两者会相对位移?

我真的只是想补充一下 @平机王作者 的答案而已,但是,看大家这么热情啊,我一句话不说也不好……

其实这个是用了水平切割原理, @Thinkraft 的一篇文章写的很详细了,我就通俗地说一下吧。

fc画面是一行一行地输出的,但是输出的时候可以把这些行给错开,造成相对位移的现象。

fc上很多游戏都用了这个方法造成N多层卷轴的假象,比如忍者龙剑传系列。

比如忍者龙剑传2的这张图,草地 火车 森林 远山都是相对移动的,4重卷轴,厉不厉害?达到了sfc的水准。

这就是水平切割的威力。

群众:明明说相对位移,你放一张静态图,搞毛线啊?

没错,静态图看不出什么东西。
但是,再看一组忍者龙剑传的图就明白了。

相对冷门的一款GB上的【忍者龙剑传 决战摩天楼】

大家可以明白了吧,这就是隼龙如何切割bos……呸,水平切割如何切割boss的。

很惭愧,明明说的是fc,结果用了GB,因为fc上实在想不出更好的例子了,如果大家能想到的话,请告诉我。

ps:求赞求关注啊~

ps2:很惭愧,水平不足,只能说一些浅显的东西,如果大家想对fc的原理有更深入的了解,请移步本问题下 @Thinkraft 的答案

ps3:居然上日报了~