じ☆ve冰风 发表于 2024-2-15 11:27:25

一种简单的开头动画(标题影像)实现方法



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

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

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();
    }
}

             本帖来自P1论坛作者tuxyin,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=486353若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 一种简单的开头动画(标题影像)实现方法