设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2003|回复: 2
打印 上一主题 下一主题

[有事请教] 如何制作游戏通关真结局后改变标题画面?【已解决】

[复制链接]

Lv2.观梦者

梦石
0
星屑
363
在线时间
33 小时
注册时间
2022-9-28
帖子
11
跳转到指定楼层
1
发表于 2022-11-10 15:22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 70pctcat 于 2022-11-12 12:41 编辑

搜索了很久好像没有找到mv的解决方法,也看不懂一些很复杂的脚本,T T求解,如何在通关了真结局之后能替换掉原有的标题画面?

Lv4.逐梦者

梦石
0
星屑
7247
在线时间
474 小时
注册时间
2021-12-4
帖子
513
2
发表于 2022-11-10 18:05:42 | 只看该作者
Scene_Title.prototype.createBackground = function() {
    this._backSprite1 = new Sprite(ImageManager.loadTitle1($dataSystem.title1Name));
    this._backSprite2 = new Sprite(ImageManager.loadTitle2($dataSystem.title2Name));
    this.addChild(this._backSprite1);
    this.addChild(this._backSprite2);
}
首先rpg_scenes.js第470行左右的这个函数会控制标题画面用的背景图和边框图,$dataSystem.title1/2Name是数据库中的选择好的文件名,因此我们需要在一定条件下将它们改成另外两张图片的名称。
这个条件是什么呢,rmmv可以通过JSON.parse(StorageManager.load(-1))获取跨存档的全局属性(四个音量、总是跑步、记住指令),因此我们需要往里面添加一个新的属性作为条件。
具体操作方法为,新建一个插件,内容是:
JAVASCRIPT 代码复制下载
  1. (function() {
  2. ConfigManager.makeData = function() {
  3.     var config = {};
  4.     config.alwaysDash = this.alwaysDash;
  5.     config.commandRemember = this.commandRemember;
  6.     config.bgmVolume = this.bgmVolume;
  7.     config.bgsVolume = this.bgsVolume;
  8.     config.meVolume = this.meVolume;
  9.     config.seVolume = this.seVolume;
  10.     config.newGamePlus = this.newGamePlus; // 本行为新增内容,表示是否已通关一周目
  11.     return config;
  12. };
  13. ConfigManager.applyData = function(config) {
  14.     this.alwaysDash = this.readFlag(config, 'alwaysDash');
  15.     this.commandRemember = this.readFlag(config, 'commandRemember');
  16.     this.bgmVolume = this.readVolume(config, 'bgmVolume');
  17.     this.bgsVolume = this.readVolume(config, 'bgsVolume');
  18.     this.meVolume = this.readVolume(config, 'meVolume');
  19.     this.seVolume = this.readVolume(config, 'seVolume');
  20.     this.newGamePlus = this.readFlag(config, 'newGamePlus'); // 本行为新增内容,表示是否已通关一周目
  21. };
  22. Scene_Title.prototype.createBackground = function() {
  23.     if (ConfigManager.newGamePlus) {
  24.         $dataSystem.title1Name = 'Night'; // 比如说默认的标题图片是 'Castle',一周目通关后希望改成 'Night'
  25.         $dataSystem.title2Name = 'Floral'; // 同理,比如说默认的标题没有边框,一周目通关后加个金色框
  26.     }
  27.     this._backSprite1 = new Sprite(ImageManager.loadTitle1($dataSystem.title1Name));
  28.     this._backSprite2 = new Sprite(ImageManager.loadTitle2($dataSystem.title2Name));
  29.     this.addChild(this._backSprite1);
  30.     this.addChild(this._backSprite2);
  31. }
  32. })();

然后,在达成真结局的那个事件里,使用如下两行脚本:
ConfigManager.newGamePlus = true; // 标记已完成一周目通关
ConfigManager.save(); // 和四个音量等一起保存到-1号文件里
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
363
在线时间
33 小时
注册时间
2022-9-28
帖子
11
3
 楼主| 发表于 2022-11-11 22:23:53 | 只看该作者
小秋橙 发表于 2022-11-10 18:05
Scene_Title.prototype.createBackground = function() {
    this._backSprite1 = new Sprite(ImageManage ...

!!感激!!T T试了一次就成功了,非常感谢!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 23:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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