RMXP脚本解析(一):总述与Main

本文介绍了RMXP游戏引擎中使用的RGSS脚本系统,RGSS是Ruby的一个扩展,用于游戏开发。文章从Main代码入手,详细解析了游戏启动流程,包括字体设置、场景生成和画面过渡等关键步骤,帮助读者理解RMXP游戏的执行机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

写在前面

RGSS

Main代码解析


写在前面

-本系列文章默认读者使用过RMXP并对Ruby的语法有一定的掌握。

-RMXP工程自带的脚本系统使用的是RGSS1。

-本系列文章使用的脚本是经过紫苑工作室汉化的版本。RXMP版本1.0.3,Ruby1.8.1,RGSS1.0.3。

-我接触RMXP大概是在上初一的时候,接触66RPG是同期。Ruby是我接触过的第二门编程语言,那个时候为了看懂RGSS1我试着去学习日语,但是实在记不住五十音图……也是因为Ruby我现在还有莫名其妙就想给函数名后面加个?的想法。很遗憾现在Ruby好像还是一门冷门语言,我本来以为它能有与Python相同的地位。

RGSS

RGSS(Ruby Game Scripting System),直译为Ruby游戏脚本系统,是RM系列内部使用的特殊Ruby扩展库。

RMXP中的脚本文件默认为Script.rxdata,而不是传统的.rb文件。

Ruby扩展名为.rb的文本文件通常能作为脚本直接运行,然而RGSS中使用独特的形式将脚本压缩成了一个单一文件 。这个文件如果不使用RPGXP 的脚本编辑器是无法编辑的。其中数据由多个组构成,按照目录的顺序从上到下依次运行。(摘自RMXP使用手册)

Main代码解析

注释中细体为汉化组注释(应该是翻译了原注释?),粗体为我的注释。(这篇文章是从我的个人博客里搬运过来的,代码在使用CSDN的代码模块之后全都是细体- -,反正注释是谁写的无所谓,读者能看懂代码的运行就可以了,大概在第十几节之后我的注释统一为##开头,以区分原注释)

虽然被放在最后运行,但是我想首先解析Main。因为Main是游戏运行实际上的入口函数(或者你说是第一个执行的部分也可以),我们从Main开始实际把控整个游戏的运行。

#==============================================================================

# ■ Main

#------------------------------------------------------------------------------

#  各定义结束后、从这里开始实际处理。

#==============================================================================

begin

    # 准备过渡

    # 设置系统默认字体

    Font.default_name = (["黑体"]) #修改游戏字体的默认值为黑体

    Graphics.freeze #准备渐变,固定现在的画面(也就是冻结画面)

    # 生成场景对像 (标题画面)

    $scene = Scene_Title.new #给全局变量$scene赋值 为Scene_Title类的实例

    # $scene 为有效的情况下调用 main 过程

    while $scene != nil 

      $scene.main

    end

    # 淡入淡出

    Graphics.transition(20) #淡入淡出方法,参数为渐变帧数

  rescue Errno::ENOENT #rescue表示捕获异常 访问Errno类中的ENOENT常量的值

    # 补充 Errno::ENOENT 以外错误

    # 无法打开文件的情况下、显示信息后结束

    filename = $!.message.sub("No such file or directory - ", "") #$!后接异常信息

    print("找不到文件 #{filename}。 ")

end

01·容错脚本 BY 轮回者 本脚本基于星大叔的容错脚本第2版,建立两个txt文件(log_bitmap.txt log_audio.txt),对系统缺失的文件进行补救,也就是缺失文件照样可以玩游戏。 02·角色加入提示(开关2) 角色加入、离开提示。 03·分开距离自动跟随(开关4) 传说中的“开火车”。 04·加强窗口(选项动态加强)作者:carol3 05·读书读报系统(开关50) by 柳柳 参考注释打开开关,则进入读书系统,系统会连续不停地读取“显示文章”的内容显示在个窗口中,直到碰到其他事件。 06·天气系统 by ScriptKitty and Mr.DJ 共包含16个天气,(具体看脚本里的长篇说明)。 07·按键加速 08·光标循环移动 菜单可以循环选择 09·升级加点系统 本脚本不会取代默认的升级,但可以用这个功能手动追加点数。 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力,1-99级全部等于个相同数值就行了(具体看脚本里的长篇说明)。 10·升级提示 (开关5) By 叶子 原作者:桜雅 在土 11·防卡机 作者:“用我的视野范围去限制刷新的事件,因此个有300多个事件的大地图仍然可以运行在40的帧速率。这可能不是最后个版本,我还在考虑更多的方法减少事件的拖慢” 12·半透明菜单 13·截图 14·按键调用 By: Cybersa 15·文字投影效果 16·全屏幕(API) 17·游戏版权(游戏开始时显示LOGO) 18·杀敌随机金钱 by.我要食叉包 19·商店显示 优化了商店 20·价格变动 翻译:柳柳 21·菜单显示血条 22·物品分类 可以自定义设置物品分类,利用物品描述,每个描述后面添加@物品分类即可。 23·任务和菜单 by 柳柳 24·完美输入法(具体看脚本里的长篇说明) 25·显示敌人生命百分比 作者:carol3_柳柳 26·显示地图名 by 桜雅 在土 27·截图存取档(具体看脚本里的长篇说明) 28·真实商店(具体看脚本里的长篇说明) 29·即时消息脚本(仿网游,甚者可以外接成为聊天框) 30·贵重物品特殊颜色 31·等级突破 32·显示每个事件的名字 作者:柳柳 加强:叶子 33·事件的储存读取进度 34·偷盗系统 By 绿发的Eclair 35·完整鼠标系统 By whbm 36·繁体字 (把简体字转换为繁体字?) 37·直接用地图做战斗背景 脚本作者:bluefool 38·显示ARPG by 刻宮 39·fuki v6 (具体看脚本里的长篇说明) 40·得失提示 作者:KKME,联系QQ:6690474 41·套装系统 By 凌冰 42·价格变动 by 和希成纳 、桜雅在土 43·坐标显示 44·四方向寻路 By whbm 45·防卡机2 (应该是放挂机才对) 46·小地图 by ピニョン clum-sea 游戏中,按下shift键可以开关地图, 47·更新加密游戏(暂时用不着)(具体看脚本里的长篇说明) 48·银行系统(开关12)(具体看脚本里的长篇说明) 49·魔物图鉴(具体看脚本里的长篇说明) 50·自动更新(暂无效)BY 亿万星辰(具体看脚本里的长篇说明) ---2.01测试---- 1.RM计算机by 七夕小雨 2.解决RM的10s 3.打造 4.鼠标脚本控制窗口滚动 5.光标位置记录 6.移动的公告 by bbaugle 7.特技升级 by Claimh 8.彩虹神剑 by 柳柳 修改 by 叶子 9.远景自动移动 by ぷのくー 10.全键盘检测 11.多重状态 by Claimh 12.技能连击追加 by Claimh 13.显示敌人列表 Scene_Battle 14.回合表示 15.转到输入下个角色的命令 16.魔法商店 17.视角跟随NPC 18.颜色随血量变化 19.组合键连续特技系统 By 绿发的Eclair 20.游戏版权LOGO(结束游戏时)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值