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

Project1

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

[交流讨论] 一种简单的开头动画(标题影像)实现方法

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
帖子
247
跳转到指定楼层
1
发表于 2021-7-14 12:07:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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. }

评分

参与人数 3+3 收起 理由
HUISIHEXING + 1 塞糖
caffee.bee + 1 我很赞同
1805796591 + 1 精品文章

查看全部评分

Lv1.梦旅人

梦石
0
星屑
148
在线时间
30 小时
注册时间
2021-6-16
帖子
25
2
发表于 2021-7-22 04:58:48 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2115
在线时间
235 小时
注册时间
2019-4-10
帖子
119
3
发表于 2021-7-23 18:44:53 | 只看该作者
谢谢分享,视频大于9秒,我设定成9秒结束,但9秒后视频依然在播放,按ESC也无法退出播放。

点评

视频实际多出来的时长,就要你自己用软件截去了~~  发表于 2021-7-23 20:34
所以标题说是一种“简单”的方法。。。备注里两处设定时间必须等于或大于视频实际时长才有效。  发表于 2021-7-23 20:33
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
898
在线时间
64 小时
注册时间
2019-7-28
帖子
111
4
发表于 2021-8-11 10:01:01 | 只看该作者
好东西!谢谢大佬分享
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
898
在线时间
64 小时
注册时间
2019-7-28
帖子
111
5
发表于 2021-8-13 08:18:58 | 只看该作者
大佬求问我这个是什么情况……
一开始放脚本就提示错误,后来我直接文件名都照搬了,还是这样

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

QQ截图20210813081937.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
898
在线时间
64 小时
注册时间
2019-7-28
帖子
111
6
发表于 2021-8-13 08:26:30 | 只看该作者
嗯……然后它还跟我说这个,大佬你怎么看?

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

QQ截图20210813082719.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
帖子
247
7
 楼主| 发表于 2021-8-13 09:01:48 | 只看该作者
我妻寒十 发表于 2021-8-13 08:26
嗯……然后它还跟我说这个,大佬你怎么看?

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

再一个,关于那个报错,它会在调用Video.play('影像文件.webm')方法时,找不到相应名称影像文件的情况下发生。如果你照搬了代码里影像文件名的话,可以检查一下movies目录下相应影像文件是否也修改为了“2D_Cat.webm”,注意大小写和下滑杠是否也相符。

点评

肯定符合,因为我那是直接复制过去的QAQ目前是只有这一种报错可能吗?  发表于 2021-8-13 09:37
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
898
在线时间
64 小时
注册时间
2019-7-28
帖子
111
8
发表于 2021-8-13 09:43:45 | 只看该作者
啊,谢谢大佬,没事了已经!!是我自己后缀名重复了!!由于我平时都是不开拓展名的,看见大佬脚本里的.webm就直接复制过去了……谢谢大佬,麻烦了,打扰了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
6 小时
注册时间
2022-7-16
帖子
2
9
发表于 2023-10-14 23:15:07 | 只看该作者
有没有va版本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
6 小时
注册时间
2022-7-16
帖子
2
10
发表于 2023-10-14 23:16:13 | 只看该作者
有没有va版本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 20:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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