如何将属性分配给Javascript变量

时间:2017-03-22 02:28:37

标签: javascript

所以我正在制作一个以中世纪为主题的游戏,我需要一个系统,为不同类型的部队装备盔甲,武器和盾牌的组合。我曾经有一个系统显示我有多少可能的组合,但是很难筛选出一百种组合来查看你有多少兵力。所以,我决定要显示所有部队的菜单,但每个部队只需要三个插槽:盔甲,武器和盾牌。因为部队刚刚开始

    var basicTroopAmount = 0;

当你招募他们时,金额会上升。我只是想问一下是否有人知道一个更好的方法,每个队伍都是“个性化的”,因为每个人都可以装备不同的装甲和武器,以及如何告诉代码装甲变量是盔甲,不能进入武器插槽和多个装甲不能进入一个插槽。我知道这个问题非常重要,但如果有人有任何输入可以帮助吨!

1 个答案:

答案 0 :(得分:0)

您可以创建一个对象并存储所需的所有属性和方法。

        var Troop1 = new Troop("Iron","Sword","Round");
        Troop1.getTroopDetails(); //Prints Armour -> Iron, Weapon -> Sword, Shield -> Round

        var Troop2 = new Troop("Bombsuit","Lance","Square");
        Troop2.getTroopDetails(); //Prints Armour -> Bombsuit, Weapon -> Lance, Shield -> Square

        var TroopList = [];
        TroopList.push(Troop1);
        TroopList.push(Troop2);
        console.log(TroopList);

根据需要创建新的Troop对象并将其保存在数组中:

<button type="button" onClick="TroopManager.addTroop('Iron','Sword','Round')">Add Troop</button>

更新: 在HTML中,将以下代码添加到按钮中。我将硬编码值传递给addTroop函数,您可以传递用户输入的值:

var TroopManager = {
          myTroopArray : [],

          addTroop : function(armor, weapon, shield) {
            var Troop1 = new Troop(armor, weapon, shield);
            this.myTroopArray.push(Troop1);
            console.log("A new Troop has been added.")
            this.printTroops();
          },

          printTroops : function() {
            for(i=0;i<this.myTroopArray.length;i++) {
                console.log(this.myTroopArray[i].getTroopDetails());
            }

          }
        }

在JavaScript中,实现以下功能:

{{1}}