前言
前言
★1.面向群体
本教程主要目的是帮助想要编写自己所需的RGSS3代码的编程初学者入门。
此教程不适合想要快速提高编程硬实力的人阅读。
教程中不会用大量笔墨讲解Ruby的语法,只对理解代码作最浅显的解释。
尽管在教程中可能用到一些Ruby中相较于其他语言比较不同的语言特性,本教程并不负责详细解释这些语言特性,而是“会用就行”。
如果在学习中发现不熟悉Ruby语法,可以参考网上的Ruby教程以及其他RGSS教程中讲解Ruby语法的部分。
推荐雷霆大大的 【新手向】RMVA - RGSS3脚本入门教程(施工中)
★2.教学理念
不会大块地讲解理论,而是尽量以需求为主导,从例子出发,通过简单的代码激发学习兴趣。
在教程之后,需要自己在动手完成任务的过程中提升解决问题的能力。
快速开始
★1.如何在RPGMaker VXAce中编写自己的代码打开脚本编辑器有两种方式。
方式一:
在菜单上方工具栏找到脚本编辑
方式二:
在图标中找到脚本编辑
除了这两种方式,还可以用键盘快捷键F11打开脚本编辑器。
打开脚本编辑器后,先将滚动条下拉至最底,找到“▼ 插件脚本”。
在其下方的“(请在此添加)”处,单击鼠标右键,选择“插入”。
之后就可以给新产生的空的一栏命名,并在右方的编辑器内输入自己的代码。
精灵与位图Lv1 初识精灵
课程难度:★☆☆☆☆ 咸鱼
涉及的RGSS知识:Sprite类,Bitmap类
涉及的Ruby知识:创建实例,修改属性
那么,多说无益,让我们新建一个RMVA工程,打开脚本编辑器,在插件脚本处新增一栏,动手输入以下代码吧。
sprite =Sprite.new # 注意字母的大小写
sprite.bitmap = goddess_bitmap
注意,动手输入代码也是在大脑中记忆代码的过程。直接复制粘贴的话,学习效果将会大打折扣。
运行结果显示,画面的左上角出现了一个男神的图像。
sprite= Sprite.new
这里给不熟悉面向对象编程的同学简单解释一下类与实例。
Sprite.new就是一个Sprite类型的变量。
也就是,Sprite.new生成了一个Sprite的实例,并且我们把它赋值给了sprite。
所有媒体库中蓝色圆圈的素材就是RTP中包含的素材。在安装了RPGMaker VXAce的电脑上运行时,游戏工程文件夹内没有RTP素材也可以正常运行。
sprite.bitmap= goddess_bitmap
这一句里,我们修改了它的bitmap属性,将它变成了第二句生成的goddess_bitmap。
而精灵(Sprite)则是一个放映机,当你把胶卷交给它,它就把胶卷投射到屏幕上。
当我们把sprite的bitmap设置为goddess_bitmap后,sprite就把变化后实实在在的 “胶卷”投射到屏幕上了。
让我们看看最后一句rgss_stop。
loop是一个循环语句的关键词,它后面的大括号的内容是用来循环执行的语句。
我们的游戏是在屏幕中显示的,只有让屏幕刷新才能看到图像。
[size=0.83em]2019-03-09_171718.jpg (46.75 KB, 下载次数: 21)
下载附件 [url=]保存到相册[/url]
[color=rgb(153, 153, 153) !important]2019-3-10 17:18 上传
然而,背景黑黑的总觉得心里不是滋味,让我们加一张背景吧。
背景精灵取名为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度后投射在湖面上,就大功告成了吧?
由于男神的倒影和男神的位图应当是相同的,只是“放映”出来的位置与角度不同,
另外,倒影的位置应该在本体的下方,因此将reflection_sprite的y设置为100加上位图的高度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度的结果就是……
注意,精灵的x表示的是精灵原点ox到画面左侧的距离,现在精灵原点ox不再是0,而是中间,因此x的值应当对应增加位图宽度width的一半。
另外,旋转180度后,位图将从现在处于原点下方变成处于原点的上方,因此我们还要调整y坐标,让它继续往下平移一个位图的高度。
...
reflection_sprite.y= 100 + goddess_bitmap.height * 2
...
[size=0.83em]2019-03-09_183720.jpg]现在的结果也不尽人意,倒影的男神已经跑到了画面之外。
修改精灵的比例是通过修改精灵的zoom_x与zoom_y属性完成的,它们分别代表精灵在x方向与y方向以原点ox,oy为参考的放大(缩小)比例。
# 男神倒影精灵
...
reflection_sprite.y = 100 + goddess_bitmap.height * 3 / 2
reflection_sprite.ox = goddess_bitmap.width / 2
reflection_sprite.angle = 180 # 旋转180度
reflection_sprite.zoom_y = 0.6 # 纵向缩小为0.6倍
rgss_stop
倒影的大小终于可以了,但是倒影给人感觉太亮了。
不透明度的取值为0~255,这里我们取大约一半的128。
...
rgss_stop
现在,我们利用RGSS的精灵与位图,完成了一幅简单的画面。
一、
Sprite是RGSS的精灵类,可以把位图按照需求显示在屏幕上,充当“放映机”。
精灵Sprite类的实例有着各种属性,通过修改这些属性可以达到我们的需求。
精灵的位图bitmap
精灵的原点坐标ox与oy
精灵的缩放比zoom_x与zoom_y
课后练习:
使用素材(RTP)
"Graphics/Battlers/God"
[size=0.83em]Game 2019-03-09 19-06-32-890.jpg (133.79 KB, 下载次数: 24)
下载附件 [url=]保存到相册[/url]
[color=rgb(153, 153, 153) !important]2019-3-10 17:38 上传
本帖来自P1论坛作者KB.Driver,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg. blue/forum.php?mod=viewthread&tid=476294 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。