2017-04-06 160 views
0

所以我正在开发一款游戏,我正在尝试做一个关卡选择器。不过我只希望球员能够在他们击败的关卡上进行比赛。 所以我有一个标有“ELD.js” .js文件,它包含:如何更改外部.js文件中的变量数据值?

var Levels = 0; 

我真的不关心如何(在编程式的方面)。但是我希望每次赢得关卡都能够改变“关卡”的数据值。 每个级别都有自己的单独html文件,所有级别文件与“ELD.js”文件位于同一个文件中。

我已经找了一个这个答案,但他们都没有匹配我所需要的。

虽然我在这个问题上(纠正我,如果我错了),但我可以简单地测试使用这个权利的“级别”数据值?

<script type="text/javascript" src="ELD.js"></script> 
    <script> 
    if(Levels =< X) 
    { 
     } 
    </script> 

X仅代表未定义的数字,我将在稍后选择。

+0

每个级别是不同的HTML文件?那么你如何在不同层次之间转换? –

+0

如果我正确地理解了这个问题,您需要为每个玩家提供一个'ELD.js'文件。您应该使用数据库来跟踪每个用户的进度。 – jeroen

+0

@ jeroen有道理。然而,游戏不是一个在线游戏,所以我不明白为什么这是必要的。 –

回答

2

你可以建立JavaScript文件的类和变量定义的类,例如:

class GameLevel { 
    constructor (level) { 
     this.level = level; 
    } 

    get_level() { 
     return this.level; 
    } 

    set_level (level) { 
     this.level = level; 
    } 
} 

然后在整个游戏中,你有你的对象:

var cur_level = 1; 
var level = new GameLevel (cur_level); 

然后,赛后殴打你只需拨打电话

level.set_level (++cur_level) 

我相信你甚至可以只说level.le vel = cur_level + 1;

编辑

而且因为你想你的JavaScript数据传递到另一个HTML文件 还有一种方式将该以及传给你。您可以使用此逻辑:

  1. 打开一个新标签
  2. 新的水平传递数据
  3. 关闭当前窗口和重点新打开的窗口

这就像一个奇怪的方式做到这一点,但我相信它可以工作:)做到这一点,你运行下面的代码:

var newLevel  = window.open (<URL TO HTML FILE>, '_blank'); 

// passing thejavascript data 
newLevel.new_level = level.get_level ; // This is the data to pass or you can use the variable you had declared 

// focus on new window 
newLevel.focus(); 

// close current window 
window.close(); 

编辑

,然后在所有的HTML文件,你可以得到使用新级别的数据的价值window.new_level 当打开的窗口就会有你通过设置的值。

+0

所以我会将“class”编码放在单独的.js文件中,然后使用

相关问题