如何离线玩html5游戏?

How to play html5 game offline?

我想在笔记本电脑上保存一些 html5 游戏,供我弟弟在 wifi 范围外时玩。我下载了所有文件并更改了路径,以免出现错误。 现在,当我打开 index.html 时,会打开一个带有加载程序 gif 的空白页面,并且不会加载任何其他内容。我不明白为什么?不会抛出任何错误。唯一的错误是它找不到广告(调用 loadvoyager 时)。我试图对其发表评论,但仍然没有任何积极的事情发生。 这是游戏的存档:https://www.dropbox.com/s/5x3dk7w693j3os1/caca.rar?dl=0

谢谢!

assets 文件夹中似乎缺少名为 voyager.js 的文件。在浏览器中打开控制台查看此详细信息(Chrome 中的 F12)。

为了安全起见,请尝试通过本地服务器打开此游戏,这样您就不必担心 运行 游戏时浏览器关心的所有事情。

解决方案

转到此站点:

http://scotty-staging.softgames.de/assets/api/voyager.js

或者使用我创建的这个镜像:

仅文件:http://www.mediafire.com/download/4b8uhvm75fbqtwy/voyager.js
完整游戏:http://www.mediafire.com/download/y8ocia4rr5552jx/html5Game.7z

将 javascript 文件保存到资产中,然后就可以玩游戏了。

更新(问题)

var displayLoadScrn = function(){
        var body = SG.d.getElementsByTagName('body')[0];
        if( typeof body != "undefined" ){
            if( SG.d.getElementById('sg-loadscrn') == null ){
                SG.debug && console.log('show load-screen: complete');
                body.appendChild(loadScrn);
            }
            SG.loadVoyager();  //<---- This is where it goes wrong //
        }
        else{
            if(SG.debug) console.log('show load-screen: body-tag not ready. retrying in '+SG.loadScrnTimer+'ms');
            setTimeout(displayLoadScrn,SG.loadScrnTimer);
        }
    };
    
    displayLoadScrn();

 var displayImage = function(){
        var body = SG.d.getElementsByTagName('body')[0];
        if( typeof body != "undefined" ){
            body.appendChild(loadScrn);
            SG.loadVoyager();  //<---- This is where it also goes wrong //

        }
        else{
            if(SG.debug) console.log('show load-screen: body-tag not ready. retrying in '+SG.loadScrnTimer+'ms');
            setTimeout(displayImage,SG.loadScrnTimer);
        }
    };

    displayImage();

问题是你没有在assets文件夹中提供voyager资源脚本,但是需要加载

loadVoyager : function(){
    var sgc = document.createElement('script'); sgc.type = 'text/javascript'; sgc.async = true;
    var random = Math.floor((Math.random()*100000000)+1);
    //sgc.src = 'http://scotty-staging.softgames.de/assets/api/voyager.js';
    sgc.src = 'assets/voyager.js?_='+random; //<-- this line //
    //sgc.src = '//localhost:3000/assets/api/voyager.js';
    sgc.onload = SG.boot;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sgc, s);
},

你看中间的“sgc.src = 'assets/voyager.js?='+random;” ,它仍在尝试加载,我所做的是删除注释掉的行,我保留了“sgc.src = 'assets/voyager.js?='+random;”取消注释并下载航海者文件并将其放在资产文件夹中。

loadvoyager不能注释掉,因为需要加载。否则你的页面将一直加载,没有响应