• RPGMV脚本API速查

          信息

          显示文字(Show Text)

          一共有4个需要设定的地方:

          设置脸图(可选)

          如果想给弹出的文本框设置脸图,那么就可以用这个代码。

          参数参数类型/参数内容默认值说明 
          faceName字符串,内容就是脸图的名字 就是脸图文件的名字,事件编辑器那里面选择显示文字,然后点击脸图,就会有一个弹窗。弹窗里面就是脸图的文件,这个faceName就是这些文件的名字。 
          faceIndex0到8 一个脸图有8个头像,从零开始数,第一行是0到4,第二行是5到7。写几就是第几个图。 

          设置背景(可选)

          参数参数类型/参数内容默认值说明 
          background0:窗口
          1:暗淡
          2:透明
           这个参数就对应着背景下拉框的属性 

          设置窗口位置(可选)-

          参数参数类型/参数内容默认值说明 
          positionType0:顶部
          1:中间
          2:底部
           这个参数就对应着背景下拉框的属性 

          文本内容

          这个就是本指令的核心方法,效果就是弹出来文本框。如果没有配置前面的样式,那么会按照默认样式来显示。

           

          示例:

           

           

          显示选项(Show Choices)

          选项框背景

          参数参数类型/参数内容默认值说明 
          background0:窗口
          1:暗淡
          2:透明
           窗体的样式 

           

          窗口位置

          positionType:有三个固定的数值

           

          选项本体

          参数参数类型/参数内容默认值说明 
          choices数组 数组的内容就是选项的内容,比如["是","否"]。注意!元素必须是字符串类型。 
          defaultType0,1,2,,,0光标默认移动到第几个选项,从0开始。就是说一进入这个选择页面。 
          cancelType0,1,2,,,0取消选项时,默认选择哪个选项。 

           

          选项的回调函数

           

           

          示例:

           

          数值输入处理(Input Number)

           

          参数参数类型/参数内容默认值说明
          variableId正整数 所要输入进的变量ID,变量ID可以在编辑器里面直接找到。
          maxDigits正整数 输入的位数。你可以发现,在事件编辑器里面,这个是最多8位的,但是用代码的话,可以想写几位就写几位。非常自由。
              

          示例:

           

           

          物品选择处理(Select Item)

          这个函数可以储存所选物品的物品ID,前提是你必须拥有这个物品。虽然我从来没有用过,但是我想这个功能还是很有用的。

          参数

           

           

           

          显示滚动文字(Show Scrolling Text)

          参数参数类型/参数内容默认值说明
          speed正数,可以有小数2文字滚动的速度
          noFasttrue/falsefalse文字是否可以快进,false为可以,true为不可以

           

          示例:

           

           

          游戏进程

          开关操作(Control Switches)

           

          参数参数类型/参数内容默认值说明
          variableId正整数,从1开始 开关的id
          valuetrue/false 开关的值

           

          获得开关的值

          同样从1开始

           

          变量操作(Control Variables)

           

           

          独立开关操作(Control Self Switch)

          需要传递四个参数

          1. 地图ID,表示第几张地图

          2. 变量ID

          3. 独立开关名称

          4. true还是false

           

          查询值

           

          计时器操作(Control Timer)

           

          流程控制

          分支条件(Conditional Branch)

          在脚本中建议使用if else来代替

          循环(Loop)

          在脚本中建议使用for循环替代

          跳出循环(Break Loop)

           

          终止事件处理

          公共事件(Common Event)

           

          标签(Label)

          转到标签(Jump to Label)

          注释(Comment)

           

           

          队伍

          增减金币(Change Gold)

          实际上源代码中,loseGold直接调用了gainGold(-amount),就离谱。

          增减物品(Change Items)

          实际上源代码还是比较复杂的,我这个把源代码提炼精简了一下,你只管放心用。

          参数

           

          示例:

          增减武器(Change Weapons)

           

           

          增减护甲(Change Armors)

           

           

          队伍管理(Change Party Member)

          注意!如果你队伍中已经有了1号角色,那么再调用增加1号角色的代码将不会有效果(你应该庆幸没有报bug)。

          获取领队信息*

          领队一般是指队伍中第一个玩家角色

           

          获取某个角色的信息*

          注意,这里标号从1开始

          玩家队伍总人数*

           

          队伍最高等级

           

          角色

           

          增减HP(Change HP)

           

          示例:

           

          增减MP(Change MP)

           

          增减TP(Change TP)

          更改状态(Change State)

          完全恢复(Recover All)

          增减经验值(Change EXP)

           

           

          增减等级(Change Level)

           

          增减能力值(Change Parameter)

           

           

          增减技能(Change Skill)

          更改装备(Change Equipment)

          更改名字(Change Name)

           

          更改职业(Change Class)

          更改昵称(Change Nickname)

           

          更改简介(Change Profile)

           

          角色信息查看*

          $gameActors.actor(n)可以获得队伍中某个角色,n为正整数,从1开始。

           

           

          移动

          场所移动(Transfer Player)

          第一种就是直接移动,但是画面不会移动。

          第二种就是编辑器里面那个

           

          fadeType:

          0:黑

          1:白

          2:无

           

           

           

           

          设置载具位置(Set Vehicle Location)

          设置事件位置(Set Event Location)

           

          滚动地图(Scroll Map)

          参数参数类型/参数内容默认值说明
          direction8:向上
          4:向左
          6:向右
          2:向下
          2滚动方向,和小键盘是对应的。8,2代表上下,4,6代表左右。
          distance 1距离,代表滚动的格子数
          speed1 :1/8速度
          2:1/4速度
          3:1/2速度
          4:标准速度
          5:2倍速
          6:4倍速
          4速度,其中速度不一定按照正整数填写,可以自定义小数。参数每+1,速度提升一倍。

           

           

          示例:

           

          设置移动路线(Set Movement Route)

          n从1开始,n代表事件的id。

           

           

           

          载具乘降(Getting On and Off Vehicles)

          人物

          在这里特指地图上那个人物的动画。要和角色区分开。角色是记录角色数据信息的,而人物则反映了在画面上的移动速度、动画等信息。

          更改透明状态(Change Transparency)

           

          更改队列行进(Change Player Followers)

           

          集合队列成员(Gather Followers)

           

          显示动画(Show Animation)

           

          显示气泡图标(Show Balloon Icon)

           

          要注意理论上来说这个id可以无限大1

          有多大取决于系统中Ballon.png有多高,默认720像素,每一个小方块48像素。默认有10个,其图片还预留了5个扩展位置,开发者可以自己画,如果不够了只需要向下拓展即可。

          例如多扩展48*5像素,那么就可以多画5个气泡,最多可以访问到20号气泡。

          暂时消除事件(Erase Event)

           

          设置人物位置*

          注意!这个设置不会使画面一起移动。如果想要画面也一起移动,建议使用移动中的”场所移动“。

           

          查看队伍朝向*

          MV中朝向被定义为4个数字

          其实,,这个和小键盘的方向是一一对应的。

           

           

           

          图片

          显示图片(Show Picture)

          参数参数类型/参数内容默认值说明
          pictureId  编号
          name  图像名称
          origin0:左上
          1:中心
          0原点的位置
          x 0 
          y 0 
          scaleX 100宽度缩放
          scaleY 100高度缩放
          opacity0到255255透明度
          blendMode0:正常
          1:叠加
          2:正片叠底
          3:滤色
          0合成模式

           

          例如:

           

          移动图片(Move Picture)

          参数如上

           

          旋转图片(Rotate Picture)

           

          更改图片色调(Tint Picture)

           

          消除图片(Erase Picture)

           

           

          清除所有图片*

           

          计时

          等待

          要注意,这个脚本需要写在事件中

           

           

           

           

          画面

           

          淡出画面(Fadeout Screen)

          淡入画面(Fadein Screen)

           

          更改画面色调(Tint Screen)

           

          这个tone同样是一个颜色。数组各项分别为RGB+灰度。

           

           

           

          闪烁画面(Flash Screen)

          颜色使用的是RGB+强度,调用时使用数组

           

           

          震动屏幕(Shake Screen)

          默认5,5,60

           

          设置天气(Set Weather Effect)

            默认值 
          typenone
          rain
          storm
          snow
          none天气类型
          power 5强度
          duration 60持续时间,单位为帧数。

           

          示例:

           

          查看天气信息*

           

           

          音频&视频

          播放BGM(Play BGM)

          注意,如果之前已经有bgm的话,这个会把之前的给挤掉。

          淡出BGM(Fadeout BGM)

          参数为秒数

          保存BGM(Save BGM)

           

          还原BGM(Resume BGM)

           

          播放BGS(Play BGS)

           

          淡出BGS(Fadeout BGS)

           

          播放ME(Play ME)

           

          播放SE(Play SE)

          经过我的感觉,一些音名对照表如下。

          CDEFGAB
          40455052586575

           

          停止SE(Stop SE)

           

          播放影像(Play Movie)

           

          播放系统音效*

          这个所谓的系统,并不是说windows系统,而是说MV数据库里面那个系统。这个音效的顺序和MV系统里面的音保持一致。

           

          场景控制

          战斗处理(Battle Processing)

           

          商店处理(Shop Processing)

           

          名字输入处理(Name Input Processing)

           

          打开菜单画面(Open Menu Screen)

          打开存档画面(Open Save Screen)

           

          游戏结束(Game Over)

           

          返回标题画面(Return to Title Screen)

           

           

           

          系统设置

          更改战斗BGM(Change Battle BGM)

           

          更改胜利ME(Change Victory ME)

           

          更改战败ME(Change Defeat ME)

           

          更改载具BGM(Change Vehicle BGM)

           

          启用/禁用存档(Change Save Access)

           

          启用/禁用菜单(Change Menu Access)

           

          启用/禁用遇敌(Change Encounter Disable)

           

          启用/禁用整队(Change Formation Access)

           

          更改窗口颜色(Change Window Color)

          value是一个长度为4 的数组,4个元素分别是rgba

           

          例如:

           

          更改角色图像

           

          更改载具图像

           

          游戏时间*

           

          显示帧数*

           

          关闭游戏*

          这个是直接暴力关闭窗口,不会有任何弹窗!!!慎用!

           

           

          地图

          启用/禁用显示地图名称(Change Map Name Display)

           

          更改地图图块(Change Tileset)

           

          更改战斗背景(Change Battle Back)

           

          更改远景(Change Parallax)

           

           

           

          获取指定位置的信息(Get Location Info)

          地图尺寸*

           

          战斗

          增减敌人HP(Change Enemy HP)

          增减敌人MP(Change Enemy MP)

           

          增减敌人TP(Change Enemy TP)

           

          更改敌人状态(Change Enemy State)

           

          敌人完全恢复(Enemy Recover All)

           

          敌人出现(Enemy Appear)

           

          敌人变身(Enemy Transform)

           

          显示战斗动画(Show Battle Animation)

           

          强制战斗行动(Force Action)

          我方强制动作

          敌人强制动作

           

          中断战斗(Abort Battle)

           

          获取敌人名字*

          获取敌人对象*

          战斗状态判断*

          是否处于战斗状态

           

          高级

          脚本(Script)

          请使用eval()代替

          插件指令(Plugin Command)

           

          动画*

          播放动画

          直接可以用事件来播放动画,动画会作用在其身上。

          里面的参数只需要传递动画的编号即可

           

           

          事件*

           

          获取所有事件

           

          获取指定id的事件

          这个id可以在编辑器中,点开某个事件,查看其左上角得到。id从1开始。

           

          获取事件注释

          获取指定位置的事件编号

          如果指定的位置没有事件,那么返回0。

          运行事件

          可以直接用脚本来开启事件

          访问事件对象

          在地图上,直接在对象的事件指令里面创建一个脚本,里面写上下面这个,就可以打印出该事件对象。

          如果不是写在事件编辑器的话,可以指定事件ID来进行访问。

          也可以直接根据坐标来访问

           

          事件对象的移动速度

          标准速度是4,也就是人物的速度。

          事件是否靠近玩家

           

           

          鼠标*

           

          鼠标移动

          这个函数也比较特殊,并不是只要你移动了鼠标就能被检测到,而是说你必须一直按着并且移动才会true。这个其实是为触摸板设计的。

           

          鼠标左键是否正在被按下

           

          是否切换为鼠标左键

          鼠标左键是否连续按下

          要注意的就是这个isRepeated()isLongPressed(),这两个比较像,但是还是有很大区别的。如果你鼠标一直狂点,那么isRepeated()会返回true,但是isLongPressed()不会。而长按鼠标左键,两个都会返回true。

          鼠标左键释放

          鼠标右键点击

           

          鼠标位置

           

          键盘*

           

          增加WASD控制方向

           

           

          检测键盘事件

          下面这些函数要传递一个参数,也就是要检测的按键的名字,刚刚那个映射表里面都写了,直接复制就行。(注意把引号也带上)

          这个和上面的鼠标一模一样,不多做解释。

           

           

           

           

          存档*

          载入存档

          -1:载入配置文件

          0:载入第一个文件

          载入全局配置

          武器与装备*

           

          查看武器信息

           

           

           

          获取装备信息*

           

          这个会返回一个数组,里面有5个元素,分别对应游戏里面的装备信息

           

          但是这个的信息非常简陋,里面只存放了武器和装备的编号而已,并没有真正地存放物品信息。所以如果想获取真正的数据,还得去访问$dataWeapons。

          这样子,先获取玩家的装备编号,再进行查询。然后就好了。

          这个$dataWeapons的数据如下:

          属性说明
          animationId动画编号
          description说明
          etypeId 
          iconIndex图标编号
          id武器的编号
          maxItem最大持有量
          meta注释的JSON
          name武器名字
          note备注
          params武器数据的数组,从0到7分别是[0:最大HP,1:最大MP,2:攻击力,3:防御力,4:魔法攻击,5:魔法防御,6:敏捷,7:幸运]
          price价格
          traits特性,比如追加能力什么的
          wtypeId武器类型的编号

           

           

          另外,装备里面的备注是可以直接用对象的形式访问的。

           

           

           

          系统*

          显示与隐藏游戏FPS

           

          判断游戏的运行环境

           

           

           

           

           

          nw.js配置速查

          配置

          必要字段

          每个配置文件中必须要提供以下属性:

          main

          属性:应用起始页

           

          name

          属性:应用名称,应确保该字段内容全局唯一性

           

           

          扩展字段

          控制NW.js应提供的功能及如何打开主窗口.

          nodejs

          属性:是否支持Node

          node-main

          属性:指定Node.js脚本文件路径 . 并且它将在加载DOM窗口之前启动Node环境时执行

          domain

          属性:指定主机域名

          single-instance

          属性:是否以单实例运行

          bg-script

          属性:后台脚本

           

           

          window

          属性:窗体样式控制

          webkit

          属性:WebKit特性控制

          user-agent

          属性:重写应用请求页面中的 User-Agent信息

          以下变量内容可以动态设置 User-Agent内容:

          node-remote

          属性:从远程页面启用Node

          匹配模式本质上为URL , 由 http, https, file , ftp或者 '*'开始 . 其中 '*'代表匹配所有URL . 每个匹配模式由三部分组成:

          基础语法:

          chromium-args

          属性:分发应用时自定义chromium命令行参数至应用

          例如:想要禁用GPU加速视频显示,只需添加添加参数 "chromium-args" : "--disable-accelerated-video".

          如果添加多个参数,则使用空格进行分割,该字段也可使用单引号括起标记.命令行详细信息,请参阅 Command-Line-Options

          crash_report_url

          属性:应用崩溃时,崩溃转存报告将被发送到设定的服务器

          与Chromium浏览器发送方式相同,发送具有 multipart/form-data内容的HTTP POST请求. 理论上来讲, 任意 breakpad/crashpad 都可以处理该请求,因为 breakpad/crashpad 与NW相仿,. 请参阅 简单服务器的小案例或使用现有的simple-breakpad-server.

          该请求至少包含以下字段:

          js-flags

          属性:指定JS引擎(V8)可用特性

          inject_js_start

          inject_js_end

          属性:执行JavaScript代码

          inject_js_start: CSS文件执行之后 , 其他DOM或脚本运行之前 , 执行的JavaScript代码 .

          inject_js_end: 页面document对象加载之后 , 触发 onload之前 , 执行的JavaScript代码 . 主要作为新窗口中 Window.open()的参数执行JavaScript代码 .

          additional_trust_anchors

          属性:证书作为附加可用的根证书使用 , 允许连接自签名证书或者CA签发机构颁发证书的服务

          dom_storage_quota

          属性:Mb为单位的DOM存数限制数量

           

          窗口子字段

          属性:窗口子字段默认情况被继承到使用 window.open()<a target="_blank">打开的子窗口 .未继承子字段将被设置为打开窗口时的默认值

          列表如下:

          所有窗口子字段可以使用new-win-policy事件重写 .

          id

          属性:内含窗口尺寸与位置的状态的窗口ID,打开同ID的窗口时会还原该状态

          title

          属性:NW.js创建的窗口标题 . 在应用启动时显示的标题信息

          width

          height

          属性:主窗口初始宽高

          toolbar

          属性:是否显示导航栏中的工具条

          icon

          属性:窗口图标

          position

          属性:窗口位置

          min_width

          min_height

          属性:窗口最小宽高

          max_width

          max_height

          属性:窗口最大宽高

          as_desktopLinux

          属性:X11环境下,作为桌面背景显示

          resizable

          属性:是否可调整窗口大小

          【注意】 ,在OS X上将该属性设置为 false,并将frame设置为 true,用户还是可以将窗口全屏显示。只有将全屏也设置为 false才可禁用全屏控件。

          always_on_top

          属性:是否允许窗口始终置顶(在其余窗口之上)

          visible_on_all_workspaces Mac & Linux

          属性:支持多工作区的系统(如Mac & Linux)中,将窗口同时显示在所有工作区中

          fullscreen

          属性:是否允许窗口全屏

          【注意】 ,窗体和全屏框架应当一致,窗口设置为 false时,则全屏框架不应设为 true,避免窗体将阻止鼠标获取屏幕边缘.

          show_in_taskbar

          属性:是否允许显示在任务栏或停靠栏中

          frame

          属性:窗口是否为框架

          【注意】 ,窗体和全屏框架应当一致,窗口设置为 false时,则全屏框架不应设为 true,避免窗体将阻止鼠标获取屏幕边缘.

          show

          属性:启动时是否显示应用

          kiosk

          属性:是否使用 Kiosk模式(该模式即应用将全屏并阻止用户离开应用,比如常见的公共触摸屏演示)

          transparent

          属性:窗口是否透明

          窗口的透明度由CSS中的背景透明值控制,

          使用命令行参数 --disable-transparency 可完全禁止透明功能.

          使用命令行参数 --disable-gpu 禁用GPU后,可实现透明窗体的穿透点击

          WebKit子字段

          double_tap_to_zoom_enabled

          属性:是否启用两指缩放功能

          plugin

          属性:是否可加载扩展插件,比如Flash插件

          其他字段

          关于package.json的更多字段,请参考Packages/1.0

          description

          属性:配置的描述说明,以.结束

          version

          属性:应用版本信息

          maintainers

          属性:维护成员

          contributors

          属性:贡献者,与维护成员格式一致,但首个应为作者

          bugs

          属性:提交错误的网址,如mail或http地址

          licenses

          属性:许可证列表

          dependencies

          属性:必要依赖,组的顺序非常重要,较前条目具有较高优先级.

          homepage

          属性:网站URL地址

           

          package.json配置速查

          示例

           

           

          RPGMaker原生配置

           

           

          1.  

           

          nw.js脚本API速查

           

          安装原生模块

          查看nw版本

          窗口

          Window 是DOM中 顶层 window对象的包装类 . 可扩展操作以及接收窗口事件 .

          每个 Window都是EventEmitter类实例 , 使用 Window.on(...)可响应窗口事件 .

           

          获取当前窗口

          有两种等价写法

          但是实际上win===win2,因为窗口是一个非常重要的对象,所以这个是一个单例,不管是谁,获取到的对象都是一个。

           

          打开新窗口

          一共三个参数,其中,第二个是配置信息,详情参考配置中的窗口子字段。

           

          窗口的位置

          属性

          窗口相对于显示器的位置

          通过坐标移动

           

          通过默认值移动

          position String -指定的窗口位置,可选值: null(不固定) , center(屏幕居中) , mouse(鼠标所在位置)

           

           

          窗口的大小

          属性

          设置大小

          设置最大/最小值

          是否允许玩家调整大小

           

          聚焦窗口

          就是让窗口保持最前面,

           

          永久置顶

           

           

           

           

          控制台窗口(仅SDK模式下可用)

          打开/关闭控制台

           

          是否打开了控制台

           

          窗口最大化/最小化

          隐藏窗口

           

          窗口事件和监听

          最小化/最大化时

           

           

          窗口关闭时

           

          窗口获得/失去焦点时

           

           

          全屏时

           

          调试工具被关闭时

           

           

          注册快捷键

           

           

          下面是一些支持的快捷键

           

          打开默认应用

           

           

          访问剪切板

           

          全局对象

           

           

           

           

           

           

           

           

           

           

           

          窗体重写速查

          自定义类似血条的各种条

           

          自定义开始界面按钮

          就是游戏一进去那个场景,有开始游戏,继续游戏那个。

           

           

          自定义菜单指令

           

          状态界面

           

           

          地图界面

           

           

          自定义右键菜单按钮

          这个是指左下角那个窗口

           

           

           

          自定义精灵类

           

           

           

           

          文件和文件格式速查

          audio

          文件分类

          存放音频素材,下分4个子类

          音频分类

           

          data

          文件分类

          fonts

          游戏的字体文件

           

          1. 去根目录下fonts文件夹中

          2. 打开gamefont.css文件,这个里面就存着字体的信息。

          3. 把自己下载的ttf文件放入fonts文件夹中,把url里面的名字换成你下载的就行了

           

          顺便一说,fonts文件都放在了C:\Windows\Fonts中,有需要可以自取。

           

           

           

           

          icon

          游戏的图标文件

          img

          游戏中所有的图片素材

           

           

          js

          游戏源代码,包括官方的代码和插件代码

           

          movies

          游戏中的视频文件

           

           

          素材格式和尺寸

           

          素材类型大小
          立绘高度为600px
          CG816*624px
          脸图144*144px
          一个图块大小48*48px
            
          标题图片816*624px

           

           

          常用屏幕分辨率

          文件目录

           

           

           

           

           

          插件脚本案例编写速查

           

          自定义事件的触发条件

          让RPGMV的事件可以自定义触发条件。例如我正在编写一个有时间系统的游戏,我希望这个事件在早晨或者下午触发。改如何实现呢?

          可以考虑使用事件的备注来实现。例如可以备注<触发条件:早晨,中午,下午>

          编写插件

           

          自定义按键映射

           

          在游戏开发中经常出现需要自己添加一个新按钮或者快捷键的需求。

          实现自定义映射其实很简单,我们首先需要知道JS里面如何给一个对象增加属性。其中就有一个对象键值对的赋值。不懂的可以看我的JS基础。

          在脚本中,左边写所映射按键的键码,右边写你给这个键起的keyName。

          这样就把A,这个按键绑定到MV里面了。

          具体的键码可以参考附录1。

           

           

           

          但是这就有一个问题,在脚本中如果直接使用if语句,会造成一些问题

           

           

          禁用鼠标

           

          修改姓名输入界面的字符

          自定义姓名输入

           

          修改存档最大数量

          直接修改数字。

           

          自定义存档内容以及自动读档存档

           

          RPGMV如果想要存档,在以往只能通过 场景控制中的打开存档界面进行保存。这就会产生一个很难解决的需求问题。

          如何在RPGMV播放剧情的时候存档?比如在制作GalGame的时候,如何做到随时存档?

          而且在自动保存的时候,也需要保存很多自定义的变量。如何操作呢?

           

           

           

          弹幕系统

           

          在一些创意性游戏中,弹幕可以增加氛围和趣味性。

           

           

          成就系统

          成就系统理论上来说并不是游戏内的一部分,不过随着游戏理论的发展,成就已经成了游戏内不可或缺的一部分。今天我就来给各位科普一下在RPGMV中,成就系统的编写原理。

           

           

           

          在css文件夹下创建achievement.css文件

           

           

           

           

           

           

          类废都物语的鼠标点击触发事件

           

           

          类仙剑1的对某事件使用物体

           

           

          文件读写系统

           

          昼夜系统

           

          更换首页背景图

          可以在标题页更换标题图

           

          即时战斗系统

           

          原理

          窗口函数的绑定原理

          1. 看一个示例

          makeCommandList 可以来创建一个函数的显示层。 this.addCommand("测试",   'test'); 前面是显示的内容,后面的绑定的标识符(symbol)

          标识符的绑定需要在Scene_Title中完成。this._commandWindow.setHandler('test',  this.Test.bind(this));可以来绑定test标识符对应的回调函数

          原理是 setHandler函数可以把一个标识符通过数组的索引,绑定到_handlers

          通过callhandler来调用

          addCommand方法可以把一个函数的标识符和窗体名绑定到window中

           

           

           

           

          技巧速查

          让RPGMV完全透明化

          如果要让RPGMV完全透明,首先我们需要理解以下几个知识点:

          1. RPGMV是一个网页,因此想让他透明本质上是需要网页透明

          2. RPGMV运行在nwjs框架上,因此也需要让nwjs透明

          3. pixijs是控制RPGMV显示的动画库,同样会控制游戏的透明

           

          1. 因此,首先需要让rpgmv的html页面透明

            在index.html中,修改背景颜色为透明

          2. 修改并增加package.json的配置,让html的透明能显示到桌面

            frame可以取消游戏的框架,取消关闭按钮和最小化最大化按钮。transparent可以让游戏框架透明。

          3. 修改pixi.js的源码

            ctrl+f,找到下面的代码

            可以看到,虽然框架透明了,但是因为pixi也渲染了游戏,导致游戏还是没有透明。这个_backgroundColorRgba,前三个变量控制rgb,第三个控制alpha通道。

            所以我们要把这个代码修改为:

            当然,也可以自定义小数,实现半透明

          4. 这样配置还是无法实现,透明。因为pixi.js在配置时,默认了禁止透明。所以还要开启透明配置。在RENDER_OPTIONS中,修改transparent为true

            如果配置加载还是不透明,可以强制修改透明度。

            ctrl+f找到下面的代码

            修改为

          5. 此时游戏的标题界面已经透明了,但是游戏画面仍不透明,此时我们要注意,游戏的图块本身就不是透明的,为了测试。我们需要新建一个场景,里面什么都不要加。仅仅测试透明效果。

          6. 但是,这时候却发现,屏幕都是黑色。并没有透明。这是很正常的,查看源码发现Spriteset_Base中,this._blackScreen.opacity透明度默认为255。所以我们需要修改。

            这个值同样是自定义的。

          7. 这时,我们发现,右键菜单,还是无法透明。这是因为Scene_MenuBase中,没有设置透明。查看源码发现Scene_MenuBase.prototype.createBackground时,没有默认透明,因此修改代码为:

          8. 此时,游戏已经全部透明。如果画上图块没有透明,这是因为,图块素材本身也需要透明。

            此时只要远景图是透明的,图块是透明的,就可以完全透明化。

           

           

           

           

          更换nw底层版本以及手动打包游戏

          注意:nwjs有两个版本NORMAL和SDK。

          开发请使用SDK,因为可以debug。

          打包使用NORMAL,不支持debug

          nw.process.versions.nw

           

          s

           

          1. 将所需的文件压缩为zip文件,注意rar不行!

          2. 把zip文件的后缀名改为nw

          3. 把这个文件放到nw.js环境同级目录下

          4. 在nw.js的目录下打开命令行,输入下面的命令

            注意,nw.exe就是咱nw环境的入口,名字可能会变。后面那个就是咱刚才打包的文件。名字也是随意的。

            最后那个app.exe就是咱打包之后的文件。

          使用RPGMAker调用Unity游戏

           

           

          1. Compression Format设置为disabled

           

          Javascript调用c#

           

          C#调用JavaScript

          1. Assets/Plugins/WebGl,用来放置浏览器要执行的JavaScript代码,插件扩展名为.jslib,将代码文件保存在此路径,当你发布时,这段代码(具体来说)将在build JS中扩展.

          2. 代码

          3. 使用C#调用

           

           

          附录

           

          插件模板

           

           

           

          键码映射表

          按键键码按键键码按键键码按键键码
          A65J74S83149
          B66K75T84250
          C67L76U85351
          D68M77V86452
          E69N78W87553
          F70O79X88654
          G71P80Y89755
          H72Q81Z90856
          I73R82048957
          按键键码按键键码按键键码按键键码
          0968104F1112F7118
          1979105F2113F8119
          298*106F3114F9120
          399+107F4115F10121
          4100Enter108F5116F11122
          5101-109F6117F12123
          6102.110    
          7103/111    
          按键键码按键键码按键键码按键键码
          BackSpace8Esc27Right Arrow39-_189
          Tab9Spacebar32Dw Arrow40.>190
          Clear12Page Up33Insert45/?191
          Enter13Page Down34Delete46`~192
          Shift16End35Num Lock144[{219
          Control17Home36;:186|220
          Alt18Left Arrow37=+187]}221
          Cape Lock20Up Arrow38,<188'"222
          按键键码
          音量加175
          音量减174
          停止179
          静音173
          浏览器172
          邮件180
          搜索170
          收藏171

          转义字符速查

          控制字符功能
          \V[n]替换为第n个变量的值。
          \N[n]替换为第 n个角色的名字。
          \P[n]替换为第n个队伍成员。
          \G替换为货币单位。
          \C[n]后方的文字显示为第n号颜色。
          \I[n]绘制第n个图标。
          \{将字体大小增加一级。
          \}将字体大小减小一级。
          \\替换为反斜杠字符。
          \$打开金钱窗口。
          \.等待1/4秒。
          \ 
          \\反斜杠
          \!等待按键输入。
          \>立刻显示一行内剩余的文字。
          \<取消立刻显示文字的效果。
          \^显示文本后不等待输入。

           

          RPGMV的键盘映射

          定义在rpg_core中。Input.keyMapper

          MV里面键盘的按键名字和真正的键盘名字是不一样的,一个名字会对应多个实际按钮,所以要特别注意。

          keyName实际按钮
          'tab'tab
          'ok'enter、空格、Z
          'shift'shift
          'control'ctrl、alt
          'escape'esc、小键盘0、insert、X
          'pageup'pageup、Q
          'pagedown'pagedown、W
          'left'方向键左、小键盘4
          'up'方向键上、小键盘8
          'right'方向键右、小键盘6
          'down'方向键下、小键盘2
          'debug'F9

           

           

          类继承表

          场景的继承关系

           

          窗体的继承关系

           

          精灵的继承关系

           

           

          游戏全局对象类继承关系

           

           

          颜色编号表

          颜色编号对照表
          0 1 2 3 4 5 6 7
          8 9 10 11 12 13 14 15
          16 17 18 19 20 21 22 23
          24 25 26 27 28 29 30 31

           

           

          作者信息

          姓名:闫辰祥

          QQ交流群:529245311

          B站教程:https://www.bilibili.com/video/BV1Vb4y1q717?spm_id_from=333.999.0.0

          教程地址链接:https://klsdf.github.io/

          GitHub项目链接:https://github.com/klsdf/klsdf.github.io

          更新日志

           

           

           

           

           

           

           

           

           

           

           

           

           

           

          使用方法

          本文档收录了RPGMakerMV的若干api,以及nwjs的api。供广大RPGMaker的开发者参考学习。