无需多说,当前制作的场景虽功能齐全,但仍缺少很多元素。我们接下来就要用不同的deltas来进行添加,增加场景的立体感。
首先,我们要开始组织一下要进行的工作。到目前为止,Def文件中只有两张图片定义,并没有让人混淆的东西,但随着增加的装饰越来越多,而且还是乱序的情况下,将所有成分标签细分会使工作更便捷。我个人会将所有的背景装饰标上说明。在现有的场景Def中,这么更改:
- [BG 0] 改为 [BG sky]
- [BG 1] 改为 [BG Floor]
这对有效组织场景元素很有帮助。唯一要注意的就是括号内需要先有"BG" 这个单词,然后才加上你想写的名字或注释。
注意:【BG XX】中间需要有空格,否则Mugen会略过这段代码。
我们先加入图片mario002.pcx,就是有很多马里奥风格植物的那张。那么,就先从在Sff中放入图片开始吧。
- 在FF中,拉至Sff的最后张图0,1,然后点击“增加”按键。
- 你应该会看见一个“增加图片”的窗口出现。找到图片mario002.pcx。先不要确定添加,我们先设定一些数值。因为图片0,2还未使用而且又是张静态背景装饰,所以放在0组内,将图号改为2。你可以把X轴留为384,因为这张图宽度刚好384像素(很轻松吧!)。不要在“共享色表”和“自动剪裁”上打勾,最后应该是以下数值情况:
- 点击“OK”。FF就会告知图片已成功添加。然后,它还会告诉你这张图片可能显示错误因为在Sff中没有色表信息,不过,这对场景并来说不是问题。
现在,我们需要为这个背景装饰添加相关代码。
- 打开Def文件,复制一段天空图片的代码,黏贴在天空代码和地板代码之间,将其命名为[BG Big Mushrooms, Plants, etc.]或者随你喜欢。
- 你必须将各参数设置成符合图片的值:
代码:
[BG Big Mushrooms, Plants, etc.]
type = normal
spriteno = 0, 2
layerno = 0
start = 0, 47
delta = 0.9, 1
- spriteno = 0,2 与Sff中的对应图片相关联。
- start 的纵坐标(Y轴)值可通过随机数测试获得,也可通过计算获得:47 = 240 - 156 - 37。你可以先自己想想是怎么算出来的。
- delta 的值让这张图在X轴上移动比地板和天空略慢。我将Y轴Delta留为1是因为我不想让这张图在人物跳跃时钻入地下。Delta计算公式为([图片宽度-Mugen屏幕宽度]/2)/左边界值。比如,一张457像素宽的图,正确的Delta值就应该为([457-320]/2)/144 = 0.47。
然而,当我们进入Mugen测试场景时,会看见一副糟糕的画面:
这是因为我没有让Mugen对最后一格颜色进行识别并透明化。要解决这个问题,得在图片代码处加段代码:
代码:
mask = 1
每当你使用带透明色的图片时,你都应该加上"mask = 1"代码。"mask = 0"(或者直接忽视不写)只能用在内容完整且不带透明底的方形图片中,就像我们之前添加的两张图片那样,或者你也可以使用拼图科技原理来进行覆盖以达到256色的充分利用(可查阅“避免颜色丢失”章节)
加上之后,我们就能有一个正确的显示画面:
下一步就会有些简单,我们只需要重复上面的步骤在背景上添加更多的山脉图。因此,我们要将mario013.pcx 和 mario014.pcx 添加到场景内。
- 这一次,我不会对步骤进行重复解释。你现在可以在这块空白场景上发挥想象和能力,随意放置山脉图片。
- 唯一需铭记的准则:越远的背景,就需要越靠近代码区的起始位置。越远的背景,需要的横坐标(X)delta值就越小。
- 我将两张图都放在了第1组里。
- 我将mario014放在了mario013后面。因为在个人看来,相对较低的海拔和较浅的色彩说明了它是较远处的背景山脉。两个山脉图的代码都应放在[BG Big Mushrooms, Plants, etc.]之后。
- 在场景中,我将mario013山脉图片利用了两次。很明显,这在Sff中只需要添加一次图片,但在Def中需要再写一段代码,改变下位置。
- 如果你想知道我写的代码数值的话,只需要往下看就行了,不过,我建议你开始尝试自己去写。你已经了解所有的解释和知识,只需要重复你在[BG Big Mushrooms, Plants, etc.]处做过的事就可以了。
mario013.pcx被放在1,0图位上,坐标为80,0。
mario014.pcx被放在1,1图位上,坐标为331,0。
以下代码段应放在[BG Sky]代码之后,[BG Big Mushrooms, Plants, etc.]之前:
代码:
[BG far mountains]
type = normal
spriteno = 1, 1
layerno = 0
start = 0, 75
delta = 0.7, 1
mask = 1
[BG close mountains left]
type = normal
spriteno = 1, 0
layerno = 0
start = -250, -30
delta = 0.8, 1
mask = 1
[BG close mountains right]
type = normal
spriteno = 1, 0
layerno = 0
start = 160, 0
delta = 0.8, 1
mask = 1
- 以下两幅图是我的代码所显示的效果:
我们现在在加入Delta后,有了一个很棒且富有立体感的场景。达到这一层次,一个场景的好坏就只取决于你在这个场景中投入的创意和如何协调化各种装饰了。将风格迥异的素材进行混合往往会很糟糕(人物场景皆如此)。
这章教程之后,我将场景的名字更改为了"Mario Tutorial - Depth Added"。 你可以在此进行下载以跟上场景制作进度: network.mugenguild.com/cybaster/stage_tutorial/stage_part_4.rar