好吧,这是一个奇怪的网站,我不完全确定这是否是正确的SE网站,但我认为这是因为它考虑到了web代码/浏览器的兼容性。如果没有,有人在评论中告诉我,我会移动它。
所以基本上,我在github上有我的游戏源代码。我还在github页面上托管游戏本身。这个游戏应该(我相信)在Firefox和Chrome浏览器上运行。源代码没有任何一个浏览器独有的内容。
游戏在铬合金上运行良好。然而,在Firefox上,情况并非如此。没有任何资产(图像、声音)在github页面链接上显示/工作。但奇怪的是:在我的本地文件系统上,当我用FF打开html文件时,它会运行/渲染资产。此外,当我下载我的项目的zip并尝试w/FF时,它也很好。为什么会出现这种情况?
(注意,如果你想看到问题,点击github页面链接,然后点击"开始游戏",这将打开问题发生的游戏)
编辑:忘了提一下,我在FF控制台中得到的错误是NS_ERROR_NOT_AVAILABLE:
,它导致第421行,即:g2d.drawImage(playerSprite, spriteLoc[0], spriteLoc[1]);
,我在画布上绘制图像。g2d应该是ctx-btw,这是一个糟糕的java习惯。
尝试更改资源的路径。你这样称呼声音文件和图像文件:
laserSound = new Audio("resources\Sounds\laserblast.wav");
playerSprite.src = "resources\Sprites\Sprite.png";
您需要将路径更改为:
laserSound = new Audio("resources/Sounds/laserblast.wav");
playerSprite.src = "resources/Sprites/Sprite.png";
就是把这个改成这个/
按照目前的获取方式,Firefox找不到文件所在的位置。
另外,为什么不把init();
放在JS文件的底部呢?这只是为了确保JS解析器已经知道您将要调用的某些函数已经定义好了,比如update()
和initBackground()
(这似乎不是问题,但只是为了安全起见。)