じ☆ve冰风 发表于 2024-4-12 22:33:59

日历的RGSS3入门教程 - 精灵与位图Lv1 初识精灵

前言
前言
★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是一个循环语句的关键词,它后面的大括号的内容是用来循环执行的语句。我们的游戏是在屏幕中显示的,只有让屏幕刷新才能看到图像。
2019-03-09_171718.jpg (46.75 KB, 下载次数: 21)
下载附件保存到相册
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.newreflection_sprite.bitmap= goddess_bitmapreflection_sprite.x= 100reflection_sprite.y= 100 + goddess_bitmap.heightreflection_sprite.angle= 180 # 旋转180度rgss_stop
那么,让我们运行一下看看……


由于RM默认的精灵原点是在图像的左上,因此旋转180度的结果就是……


注意,精灵的x表示的是精灵原点ox到画面左侧的距离,现在精灵原点ox不再是0,而是中间,因此x的值应当对应增加位图宽度width的一半。另外,旋转180度后,位图将从现在处于原点下方变成处于原点的上方,因此我们还要调整y坐标,让它继续往下平移一个位图的高度。
...reflection_sprite.y= 100 + goddess_bitmap.height * 2...
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"
Game 2019-03-09 19-06-32-890.jpg (133.79 KB, 下载次数: 24)
下载附件保存到相册
2019-3-10 17:38 上传









本帖来自P1论坛作者KB.Driver,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg. blue/forum.php?mod=viewthread&tid=476294若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 日历的RGSS3入门教程 - 精灵与位图Lv1 初识精灵