试图将我的 js 游戏放入 html 文件,不会使用 canvas 区域
Trying to put my js game into html file, won't use canvas area
如果我应该做些不同的事情,请告诉我。
我有一个 JavaScript 游戏,现在我有 index.htm
文件,其中包含 canvas 调用 JavaScript 文件的文本。
我希望能够从 js
文件中获取代码并将其实际放入 htm
文件中,这样它只会产生 1 个文件,例如 .htm
而不是 2 个文件,例如 .htm
和 .js
我已尝试无济于事并遵循了本指南...
http://www.tutorialspoint.com/javascript/javascript_placement.htm
因为它需要在加载时执行操作,所以我将我的 js 代码放在 BODY 区域内。
我确信这是我的无知,所以希望这是一个非常简单的基本问题,专家 js 开发人员可以帮助我。
谢谢!
编辑 1:
这是我试过的...
</head>
<body>
<canvas id="screen" width="310" height="310"></canvas>
<script type="text/javascript">
<!--
;(function() {
var Game = function(canvasId) {
var canvas = document.getElementById(canvasId);
var screen = canvas.getContext('2d');
var gameSize = { x: canvas.width, y: canvas.height };
this.bodies = createInvaders(this).concat(new Player(this, gameSize));
var self = this;
loadSound("shoot.wav",function(shootSound) {
self.shootSound = shootSound;
var tick = function() {
self.update();
self.draw(screen, gameSize);
requestAnimationFrame(tick);
};
底部是这样的:
var loadSound = function(url, callback) {
var loaded = function() {
callback(sound);
sound.removeEventListener('canplaythrough', loaded);
};
var sound = new Audio(url);
sound.addEventListener('canplaythrough', loaded)
sound.load();
};
window.onload = function() {
new Game("screen");
};
})();
//-->
</script>
</body>
</html>
EDIT2:你们很棒,非常感谢。它比你想象的还要愚蠢——我忘了将 shoot.wav 文件包含在与 .htm 文件相同的目录中!
我不确定 SO 是如何工作的,但我觉得我应该给第一个建议检查调试器的人答案(除非我可以给每个建议它的人投票)
我也不确定第一个函数之前的流氓分号,因为我似乎在游戏现在运行时摆脱了它。
再次感谢所有对我的愚蠢事故做出回应的人!
脚本标签中函数前的流氓分号?浏览器控制台中有任何调试错误吗?
如果我应该做些不同的事情,请告诉我。
我有一个 JavaScript 游戏,现在我有 index.htm
文件,其中包含 canvas 调用 JavaScript 文件的文本。
我希望能够从 js
文件中获取代码并将其实际放入 htm
文件中,这样它只会产生 1 个文件,例如 .htm
而不是 2 个文件,例如 .htm
和 .js
我已尝试无济于事并遵循了本指南... http://www.tutorialspoint.com/javascript/javascript_placement.htm
因为它需要在加载时执行操作,所以我将我的 js 代码放在 BODY 区域内。
我确信这是我的无知,所以希望这是一个非常简单的基本问题,专家 js 开发人员可以帮助我。
谢谢!
编辑 1:
这是我试过的...
</head>
<body>
<canvas id="screen" width="310" height="310"></canvas>
<script type="text/javascript">
<!--
;(function() {
var Game = function(canvasId) {
var canvas = document.getElementById(canvasId);
var screen = canvas.getContext('2d');
var gameSize = { x: canvas.width, y: canvas.height };
this.bodies = createInvaders(this).concat(new Player(this, gameSize));
var self = this;
loadSound("shoot.wav",function(shootSound) {
self.shootSound = shootSound;
var tick = function() {
self.update();
self.draw(screen, gameSize);
requestAnimationFrame(tick);
};
底部是这样的:
var loadSound = function(url, callback) {
var loaded = function() {
callback(sound);
sound.removeEventListener('canplaythrough', loaded);
};
var sound = new Audio(url);
sound.addEventListener('canplaythrough', loaded)
sound.load();
};
window.onload = function() {
new Game("screen");
};
})();
//-->
</script>
</body>
</html>
EDIT2:你们很棒,非常感谢。它比你想象的还要愚蠢——我忘了将 shoot.wav 文件包含在与 .htm 文件相同的目录中!
我不确定 SO 是如何工作的,但我觉得我应该给第一个建议检查调试器的人答案(除非我可以给每个建议它的人投票)
我也不确定第一个函数之前的流氓分号,因为我似乎在游戏现在运行时摆脱了它。
再次感谢所有对我的愚蠢事故做出回应的人!
脚本标签中函数前的流氓分号?浏览器控制台中有任何调试错误吗?