查看: 115|回复: 0

[转载发布] 日历的RGSS3入门教程 - 精灵与位图Lv1 初识精灵

[复制链接]
  • TA的每日心情
    开心
    昨天 10:15
  • 签到天数: 73 天

    连续签到: 1 天

    [LV.6]常住居民II

    2044

    主题

    86

    回帖

    8602

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    -2
    卡币
    6460
    OK点
    16
    积分
    8602
    发表于 2024-4-12 22:33:59 | 显示全部楼层 |阅读模式
    前言
    前言
    ★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在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-9-21 16:43 , Processed in 0.049723 second(s), 41 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表