注意:其他答案似乎无效,因为我不想从其他文件导入或使用功能。
我需要知道是否有什么方法可以在可以告诉其他JS文件运行的地方放置任何内容。和整个文件。
我是JavaScript的新手,我正尝试避免使用NodeJS和jQuery之类的东西,以便对JS有更好的了解,因此我尝试编写一些简单的程序。
我做了一个小游戏,但是我想再提高一个水平。我尝试这样做,以便一旦在特定区域中检测到碰撞,它将设置一个布尔值,该布尔值确定级别是否仍在运行至false。然后我做了一个while循环,说如果它是对的,它将更新游戏。问题是,正如我从该站点上的其他问题中学到的那样,这无法正常工作。它使整个事情崩溃。所以我认为,如果我可以回到以前的游戏循环,但将另一个级别放到文件中,则可以调用该文件并将其基本上是一个单独的游戏。
TL; DR:我需要知道如何停止运行一个文件并转到JS中的另一个文件,或者至少将用户重定向到单独的URL,以便可以将级别放置在单独的站点中。
答案 0 :(得分:0)
我将稍微阅读一下您的问题,以便为您提供我认为是更好的答案。本质上,您想通过加载新的.js文件并停止使用另一个文件来更改播放器的级别。
多个文件成为解释器的“一个大文件” ,这意味着将级别放入单独的文件仅出于组织目的-除非您有多个页面,每个页面使用不同的“ level.js”文件。
您尚未发布任何代码,因此我无法真正为您提供量身定制的示例,但我将提供一个通用示例。
if (gameOn == false) {
location.href = "level2.html";
}
然后在level2.html中,您将拥有一个不同的<script>
,它可以与您的所有其他游戏代码一起运行2级。
例如:如果您有一个存储一堆gameObjects的数组,则可以将其替换为“ level2”数组。
随时问任何问题。
答案 1 :(得分:0)
这是一个很大的主题,但总结起来,您需要三件事:
一个脚本标记,引用了程序的入口点,通常为index.js
,该入口点应特别具有type="module"
属性,例如<script type="module" src="./index.js"></script>
主要入口点脚本/模块本身,例如index.js
,它应该具有一个或多个import语句
一个或多个文件要导入到您的主模块中,例如level1.js
,level2.js
等。
总的来说,可能看起来像这样:
// html
<script type="module" src="./index.js"></script>
(请参阅注释1)
// index.js
// do all game stuff here
import level1 from './level1.js';
import level2 from './level2.js';
// etc.
...
// do something with level1, level2, etc.
// level1.js
export default {
someList: [], // ?
someProperties: {}, // ?
}
// OR ( but be sure there's only one export statement )
export default function () {
// do it, run the level!
}
./
来引用当前所有文件夹。我看到的示例仅包含一个正斜杠,没有点,但是我知道这在Chrome浏览器中不起作用,并且我怀疑该点在其他浏览器中是否有用。这也意味着您可以拥有一个文件夹结构,例如:game -> images -> js -> source index.js -> levels level1.js -> css并像
index.js
一样引用../levels/level1.js
中的某个级别