我浏览了这个问题的许多其他答案,无法找到答案。
问题似乎是它没有在我的 game.js 文件中识别 World 全局。
html文件的顺序正确
<script src="js/world.js"></script>
<script src="js/game.js"></script>
IN world.js -- 这个构造函数应该可以工作,因为它与我的其他构造函数相似
var World = function(){
var draw = function(ctx) {
ctx.drawImage(bg1, 100, 100);
};
};
IN game.js——罪魁祸首可能在这里
请注意,下面这两个函数都没有嵌套在任何东西中:
var World;
function init() {
// Declare the canvas and rendering context
canvas = document.getElementById("gameCanvas");
ctx = canvas.getContext("2d");
localPlayer = new Player(startX, startY); //WORKS CORRECTLY
World = new World(); //SHOULD ALSO WORK CORRECTLY
……………………………………………………………………………………………………………………
在 init 函数之外是
function draw() {
// Wipe the canvas clean
ctx.clearRect(0, 0, canvas.width, canvas.height);
World.draw(ctx);
// Draw the local player
// Draw the remote players
var i;
for (i = 0; i < remotePlayers.length; i++) {
remotePlayers[i].draw(ctx);
};
localPlayer.draw(ctx);
};
在 World.draw(ctx) 是我得到错误的地方
Uncaught TypeError: Object [object Object] has no method 'draw' game.js:202 draw
如果您需要更多详细信息,我很乐意提供帮助。我会发布我所有的代码,只是它非常大。