本帖最后由 n805 于 2025-1-4 13:47 编辑 % u5 c6 g( G$ E& v( _2 d E) @+ }
4 |1 K, C+ v; x, z6 }
精灵图也说的差不多了,来说说背景图层。上文提到过,土星能够将包括精灵图在内的五枚图层重叠。
- t! _7 c8 E; H' B5 j3 E7 m# T6 s' j$ F- o- s% j
现在我们可以看到,这张图上共有6个图层。在最下方的「渐变层」只能以扫描线为单位设定颜色。没有其他图像输出会放置这样一个图层,相当于红白机的「背景色」图层。它无法设定显示图片,也无法设定重叠时摆放的位置,所以和其他背景图层不同。% }3 a& x# o% C" `4 l2 _2 l% X
4个背景图层,有两个图层是上下左右滚动的普通图层,称它为「基本背景层」。有一面拥有「扩大缩小功能」的背景层,称它为「可放大缩小背景层」。还有一层是拥有包括「放大缩小功能」等「变形」功能的图层,称它为「旋转背景层」。
' x, l) m0 H! M+ W& S- _这四个图层在重叠时可以自由改变放置顺序。上面的图里面可放大缩小背景层被放在了最下面,实际上放在最上面也是可以的。并且,背景图层之间可以设定半透明。给优先度高的层设定半透明之后就可以看到下面的层。
, `! e# g! E$ ~& [" s4 ?3 p精灵图就像上面已经写到的一样,它是一个特殊的图层。它可以以像素点为单位设定摆放的顺序。当将那个像素点的优先顺序设定在其他背景层之间的时候,看上去就会像是其他的背景层夹在中间。4 j* [! F' O- Z: t2 ?! e
可旋转背景层是在将显存的数据输出时改变读取显存的时机。刚才提到的变形功能则是利用了这一原理,但通常被称作可旋转背景层。实际上除了旋转,这个背景层还拥有许多功能。* \! K1 x+ b. J) v- }5 V
先简单介绍下实现旋转的方法。
7 X) K' }2 U' W8 s2 _, O. { V$ I5 | e+ o. x" |9 Z+ j7 `
电视(这里指显像管电视)的画面是由扫描线来绘制的。扫描线水平进行扫描,从左往右。这是电视的构造原理,扫描线的运动方向无法改变。画面信息的显存(VRAM)从最初的地址依次读取,输出到电视上就会显示出画面。这时,将读取的顺序,读取的地址改变,也就是倾斜地读取显存。那么读取的画面就是会是倾斜的画面。将这个画面交给扫描线,那么倾斜的画面就会出现在电视上。
% [% E" {2 v: l$ W) t1 P" i( O土星可以对读取显存做设置。不仅可以让画面旋转,还可以以扫描线为单位进行设置。不仅能设定倾斜,还可以设定读取显存的速度。当加快读取的速度时,得到的图像就会缩小;当减慢读取速度时,得到的图像就会放大。还能以扫描线为单位设定读取的位置。不设定读取的倾斜的话,就相当于视差滚轴。, l2 F4 N) d6 | s3 G
这个「以扫描线为单位进行设置」是通过准备与扫描线行数相同的table(在内存里划分出来的一行空间,也叫row。纵向一列叫column)。旋转不过是其中的一个应用例。可以实现视差滚轴。可以根据层的不同,设定不同的放大率,还可以双轴旋转。还可以制作怪异的变形动画。但是生成table的运算很复杂。为了更方便的完成这个过程,后来出现了3D游戏制作用的库。那个库里包括了自动生成table进行「放大缩小且双轴旋转」处理的函数。5 o4 X. L& A k4 X
能够「放大缩小且双轴旋转」这样独特的画面效果,可以说是一个有技术水平的厂家才可以耍的任性。5 _/ H. t& [* q3 R2 b y n% E
2 F9 @8 I5 r9 K7 Z }
|