查看: 10506|回复: 15

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

[复制链接]
梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
回帖
229
发表于 2021-7-14 12:07:21 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 tuxyin 于 2021-7-15 01:21 编辑

123.gif

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

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

[pre lang="javascript"]var isTitleMoviePlayed = false;

var oldStartNormalGame = Scene_Boot.prototype.startNormalGame;
Scene_Boot.prototype.startNormalGame = function () {
    Video.play('movies/2D_Cat.webm');  // 这里的2D_Cat.webm即开头动画文件名,替换成你自己的开头动画文件名即可
   
    setTimeout(() => {
        if (!isTitleMoviePlayed) {
            isTitleMoviePlayed = true;
            oldStartNormalGame.call(this);
        }
    }, 9000);  // 这里的9000表示2D_Cat.webm文件的播放时长为9秒(或稍大于精确的播放时长),替换成你自己开头动画的时长即可
};

document.onkeydown = function (event) {
    if (isTitleMoviePlayed) {
        return;
    }
   
    var e = event || window.event;
    if (e && e.keyCode == 27) {
        isTitleMoviePlayed = true;
        let video = document.getElementById('gameVideo');
        video.currentTime = 9;  // 这里的9也表示2D_Cat.webm文件的播放时长为9秒(或稍大于精确的播放时长),依然替换成你自己开头动画的时长即可
        
        // oldStartNormalGame
        Scene_Boot.prototype.checkPlayerLocation();
        DataManager.setupNewGame();
        SceneManager.goto(Scene_Title);
        Window_TitleCommand.initCommandPosition();
    }
}[/pre]

评分

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

查看全部评分

梦石
0
星屑
148
在线时间
30 小时
注册时间
2021-6-16
回帖
24
发表于 2021-7-22 04:58:48 | 显示全部楼层
谢谢分享
回复

使用道具 举报

梦石
0
星屑
2140
在线时间
237 小时
注册时间
2019-4-10
回帖
109
发表于 2021-7-23 18:44:53 | 显示全部楼层
谢谢分享,视频大于9秒,我设定成9秒结束,但9秒后视频依然在播放,按ESC也无法退出播放。

点评

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

使用道具 举报

梦石
0
星屑
989
在线时间
75 小时
注册时间
2019-7-28
回帖
106
发表于 2021-8-11 10:01:01 | 显示全部楼层
好东西!谢谢大佬分享
回复

使用道具 举报

梦石
0
星屑
989
在线时间
75 小时
注册时间
2019-7-28
回帖
106
发表于 2021-8-13 08:18:58 | 显示全部楼层
大佬求问我这个是什么情况……
一开始放脚本就提示错误,后来我直接文件名都照搬了,还是这样
QQ截图20210813081937.png
回复

使用道具 举报

梦石
0
星屑
989
在线时间
75 小时
注册时间
2019-7-28
回帖
106
发表于 2021-8-13 08:26:30 | 显示全部楼层
嗯……然后它还跟我说这个,大佬你怎么看?
QQ截图20210813082719.png
回复

使用道具 举报

梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
回帖
229
 楼主| 发表于 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
回复

使用道具 举报

梦石
0
星屑
989
在线时间
75 小时
注册时间
2019-7-28
回帖
106
发表于 2021-8-13 09:43:45 | 显示全部楼层
啊,谢谢大佬,没事了已经!!是我自己后缀名重复了!!由于我平时都是不开拓展名的,看见大佬脚本里的.webm就直接复制过去了……谢谢大佬,麻烦了,打扰了
回复

使用道具 举报

梦石
0
星屑
64
在线时间
8 小时
注册时间
2022-7-16
回帖
2
发表于 2023-10-14 23:15:07 | 显示全部楼层
有没有va版本
回复

使用道具 举报

梦石
0
星屑
64
在线时间
8 小时
注册时间
2022-7-16
回帖
2
发表于 2023-10-14 23:16:13 | 显示全部楼层
有没有va版本
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部