加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 tuxyin 于 2021-7-15 01:21 编辑
以下代码用在了我自己的游戏项目中,它实现了在游戏启动时,首先播放movies目录下指定影像(即开头动画)的功能,开头动画播放完毕后(或播放时按ESC键),进入标题画面。虽然代码写不是特别优雅,但是简单易懂,将代码中注释里提到的地方修改一下,就可以用了。
注:以下代码是我自己在实践中学习摸索出来的,未抄袭任何插件代码(检测按键的代码参考了网上的通用解决方案,一搜一大把);无论商用、非商用,大家免费拿去随便改随便用。
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(); } }
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();
}
}
|