如何为Javascript变量分配属性
所以我正在制作一个中世纪主题的游戏,我需要一个系统,为不同类型的部队装备盔甲、武器和盾牌的组合。我曾经有一个系统,可以显示我有多少个可能的组合,但是很难筛选出一百个组合,看看你有多少部队。所以,我决定有一个显示所有部队的菜单,但每个部队只需要有三个插槽:装甲、武器和盾牌。当部队刚开始的时候如何为Javascript变量分配属性,javascript,Javascript,所以我正在制作一个中世纪主题的游戏,我需要一个系统,为不同类型的部队装备盔甲、武器和盾牌的组合。我曾经有一个系统,可以显示我有多少个可能的组合,但是很难筛选出一百个组合,看看你有多少部队。所以,我决定有一个显示所有部队的菜单,但每个部队只需要有三个插槽:装甲、武器和盾牌。当部队刚开始的时候 var basicTroopAmount = 0; 当你招募他们时,数量会增加。我只是想问,是否有人知道一种更好的方式,即每个部队都可以配备不同的装甲和武器,每个部队都可以个性化,以及如何告诉代码装
var basicTroopAmount = 0;
当你招募他们时,数量会增加。我只是想问,是否有人知道一种更好的方式,即每个部队都可以配备不同的装甲和武器,每个部队都可以个性化,以及如何告诉代码装甲变量是装甲,不能放在武器槽中,多个装甲不能放在一个槽中。我知道这个问题很难回答,但如果有人有任何意见的话,都会有很大帮助 您可以创建一个对象并存储所需的所有属性和方法
function Troop(armor, weapon, shield) {
var armor = armor;
var weapon = weapon;
var shield = shield;
this.getTroopDetails = function() {
console.log("Armour -> " + armor + ", Weapon -> " + weapon + ", Shield -> " + shield);
}
}
根据需要创建新的部队对象,并将其保存在阵列中:
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);
更新:
在HTML中,向按钮添加以下代码。我正在将硬编码值传递给AddForce函数,您可以传递用户输入的值:
<button type="button" onClick="TroopManager.addTroop('Iron','Sword','Round')">Add Troop</button>
在JavaScript中,实现以下功能:
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());
}
}
}
使用具有私有属性和公共变量的对象。您希望将部队作为对象存储在数组中。您建议如何添加这些部队变量?我希望它是,当你点击一个出现的训练按钮,那么有没有一种方法来生成新的对象呢?在按钮的“OnClick”事件中调用一个函数,并将你的处理添加到其中。请检查更新的答案。