Project1

标题: 一种简单的开头动画(标题影像)实现方法 [打印本页]

作者: tuxyin    时间: 2021-7-14 12:07
标题: 一种简单的开头动画(标题影像)实现方法
本帖最后由 tuxyin 于 2021-7-15 01:21 编辑



以下代码用在了我自己的游戏项目中,它实现了在游戏启动时,首先播放movies目录下指定影像(即开头动画)的功能,开头动画播放完毕后(或播放时按ESC键),进入标题画面。虽然代码写不是特别优雅,但是简单易懂,将代码中注释里提到的地方修改一下,就可以用了。

注:以下代码是我自己在实践中学习摸索出来的,未抄袭任何插件代码(检测按键的代码参考了网上的通用解决方案,一搜一大把);无论商用、非商用,大家免费拿去随便改随便用。

JAVASCRIPT 代码复制
  1. var isTitleMoviePlayed = false;
  2.  
  3. var oldStartNormalGame = Scene_Boot.prototype.startNormalGame;
  4. Scene_Boot.prototype.startNormalGame = function () {
  5.     Video.play('movies/2D_Cat.webm');  // 这里的2D_Cat.webm即开头动画文件名,替换成你自己的开头动画文件名即可
  6.  
  7.     setTimeout(() => {
  8.         if (!isTitleMoviePlayed) {
  9.             isTitleMoviePlayed = true;
  10.             oldStartNormalGame.call(this);
  11.         }
  12.     }, 9000);  // 这里的9000表示2D_Cat.webm文件的播放时长为9秒(或稍大于精确的播放时长),替换成你自己开头动画的时长即可
  13. };
  14.  
  15. document.onkeydown = function (event) {
  16.     if (isTitleMoviePlayed) {
  17.         return;
  18.     }
  19.  
  20.     var e = event || window.event;
  21.     if (e && e.keyCode == 27) {
  22.         isTitleMoviePlayed = true;
  23.         let video = document.getElementById('gameVideo');
  24.         video.currentTime = 9;  // 这里的9也表示2D_Cat.webm文件的播放时长为9秒(或稍大于精确的播放时长),依然替换成你自己开头动画的时长即可
  25.  
  26.         // oldStartNormalGame
  27.         Scene_Boot.prototype.checkPlayerLocation();
  28.         DataManager.setupNewGame();
  29.         SceneManager.goto(Scene_Title);
  30.         Window_TitleCommand.initCommandPosition();
  31.     }
  32. }

作者: kuangxx    时间: 2021-7-22 04:58
谢谢分享
作者: 吟游诗人_zhen    时间: 2021-7-23 18:44
谢谢分享,视频大于9秒,我设定成9秒结束,但9秒后视频依然在播放,按ESC也无法退出播放。
作者: 我妻寒十    时间: 2021-8-11 10:01
好东西!谢谢大佬分享
作者: 我妻寒十    时间: 2021-8-13 08:18
大佬求问我这个是什么情况……
一开始放脚本就提示错误,后来我直接文件名都照搬了,还是这样

QQ截图20210813081937.png (29.78 KB, 下载次数: 44)

QQ截图20210813081937.png

作者: 我妻寒十    时间: 2021-8-13 08:26
嗯……然后它还跟我说这个,大佬你怎么看?

QQ截图20210813082719.png (19.94 KB, 下载次数: 42)

QQ截图20210813082719.png

作者: tuxyin    时间: 2021-8-13 09:01
我妻寒十 发表于 2021-8-13 08:26
嗯……然后它还跟我说这个,大佬你怎么看?

首先,“……不一定支持RPG制作大师MZ”,这个可以忽略哈~~

再一个,关于那个报错,它会在调用Video.play('影像文件.webm')方法时,找不到相应名称影像文件的情况下发生。如果你照搬了代码里影像文件名的话,可以检查一下movies目录下相应影像文件是否也修改为了“2D_Cat.webm”,注意大小写和下滑杠是否也相符。
作者: 我妻寒十    时间: 2021-8-13 09:43
啊,谢谢大佬,没事了已经!!是我自己后缀名重复了!!由于我平时都是不开拓展名的,看见大佬脚本里的.webm就直接复制过去了……谢谢大佬,麻烦了,打扰了
作者: t5c3doi    时间: 2023-10-14 23:15
有没有va版本
作者: t5c3doi    时间: 2023-10-14 23:16
有没有va版本
作者: crp    时间: 2024-5-4 13:43
TypeError
Cannot read property 'isPlaytest' of null,大佬,出现这个是啥情况呀
作者: 拉夫001    时间: 2024-5-29 10:22
大佬,脚本放在什么地方执行
作者: xmcx17173    时间: 2024-6-2 16:20
感谢分享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1