本帖最后由 KB.Driver 于 2019-3-10 17:34 编辑
这样一来,精灵的位置就得到了调整。
然而,背景黑黑的总觉得心里不是滋味,让我们加一张背景吧。
现在我们需要像一开始一样增加一个精灵,为了方便以后阅读,我们通过注释来分割代码。为了避免篇幅过长,前面已经写好而不需要修改的脚本在这里用"..."省略。
背景精灵取名为back_sprite,背景位图我们选择Titles1文件夹里的Fountain文件。
# 男神精灵
sprite = Sprite.new
...
sprite.y = 100
# 背景精灵
back_sprite = Sprite.new
back_bitmap = Bitmap.new("Graphics/Titles1/Fountain")
back_sprite.bitmap = back_bitmap
rgss_stop
运行结果:
看上去似乎有点画面感了。
不过男神既然在湖面上,湖面应该要有倒影。只要将男神旋转180度后投射在湖面上,就大功告成了吧? 我们通过调整精灵的角度angle属性,就可以让精灵以原点为中心进行旋转。 由于男神的倒影和男神的位图应当是相同的,只是“放映”出来的位置与角度不同, 我们可以将reflection_sprite的bitmap属性同样设置为goddess_bitmap。 另外,倒影的位置应该在本体的下方,因此将reflection_sprite的y设置为100加上位图的高度height。 位图的高度是位图本身的一个属性,这里我们用goddess_bitmap.height来获取它的值。
#男神精灵 ... #背景精灵 ... # 男神倒影精灵 reflection_sprite= Sprite.new reflection_sprite.bitmap= goddess_bitmap reflection_sprite.x= 100 reflection_sprite.y= 100 + goddess_bitmap.height reflection_sprite.angle= 180 # 旋转180度 rgss_stop
那么,让我们运行一下看看……
奇怪的是,男神倒影没有出现在下方,而是在左边出现了。这里就要重新提到前面所讲的精灵原点了。 由于RM默认的精灵原点是在图像的左上,因此旋转180度的结果就是……
难道我们要再调整转完之后的坐标吗?这样总觉得不是滋味。于是这里就要调整精灵的原点坐标ox,将其调整到中心。 注意,精灵的x表示的是精灵原点ox到画面左侧的距离,现在精灵原点ox不再是0,而是中间,因此x的值应当对应增加位图宽度width的一半。 与位图高度height一样,我们用goddess_bitmap.width来获取位图宽度width。 另外,旋转180度后,位图将从现在处于原点下方变成处于原点的上方,因此我们还要调整y坐标,让它继续往下平移一个位图的高度。
#男神倒影精灵 ... reflection_sprite.x= 100 + goddess_bitmap.width / 2 reflection_sprite.y= 100 + goddess_bitmap.height * 2 reflection_sprite.ox= goddess_bitmap.width / 2 ...
运行结果:
|