我正在开发一个 HTML5 3D 等距游戏(想想 sim city 2000 风格的图形),我不太确定我的代码的哪些部分正在执行,哪些部分没有执行。
这款游戏最初是通过修改我遵循的教程而创建的,我一直在尝试重组它以使其更易于使用。但是,我无法确定主函数是否正在执行,或者是否有其他原因导致我只得到空白 Canvas 。
我正在运行旧版本的代码,但自从我重组和简化它以来,我仍然无法找出问题所在。
这就是我的代码中发生的事情......
首先,网页启动 game.js 脚本并运行 init 函数:
<body onload='init()'>
<div id="content">
<h2>Tile Engine</h2>
<script src="js/game.js"></script>
</div>
</body>
init 函数如下所示:
var init = function() {
initCanvas();
initTiles();
initMap();
handleKeyboard();
handleMouse();
main();
// Let's play this game!
then = Date.now();
setInterval(main, 1); // Execute as fast as possible
};
主要功能如下:
var main = function() {
now = Date.now();
delta = now - then;
update(delta / 1000);
render();
then = now;
};// Main game loop
如果您想查看完整的代码库,可以在下面找到 git 存储库(我已将其公开): https://bitbucket.org/suipaste/isotile/overview
我的主要问题之一是我不确定应该如何调试 js,所以我无法真正判断主函数是否正在运行。
最佳答案
console.log()
是你的 friend 。
使用方法如下:
var main = function() {
console.log('main called');
.
.
.
};
当您在浏览器中运行代码时,如果您的 main()
函数被执行,您将在控制台中看到一条日志。
您可以通过按F12然后单击Console
来访问控制台。
关于javascript结构,我的游戏循环正在执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587716/