我是AS3新手,我正在开展第一场比赛。
所以我有一个部队阵容,从商店购买时会添加。
public var myTroops: Array = [{type: "lightInfantry", hp: "100", def: "10"},
{type: "lightInfantry", hp: "100", def: "10"},
{type: "heavyInfantry", hp: "100", def: "10"}];
我需要找到某种类型的步兵发生多少次然后追溯它,我找到了其他问题寻求帮助,但不是多阵列。我怎么能得到这个?基本上要求一些帮助,如何编写代码,以返回玩家已经拥有的每个步兵的数量。
提示和回答非常感谢。提前致谢。
答案 0 :(得分:3)
首先,让你的生活更轻松,并制作一些常量。这样可以对拼写错误进行编译时检查,并使其只需要输入一次字符串。
package {
public class TROOP_TYPE {
public const LIGHT_INFANTRY:String = "lightInfantry";
public const HEAVY_INFANTRY:String = "heavyInfantry";
}
}
现在,你可以创建一个辅助函数来计算某些类型:
public function countTroops(type:String):int {
var ctr:int = 0;
//loop through the troops array
for(var i:int=0;i<myTroops.length;i++){
//if the current troop matches the type passed, increment the counter
if(myTroops[i].type == type) ctr++;
}
//return the value
return ctr;
}
然后这样称呼它:
var lightCount:int = countTroops(TROOP_TYPE.LIGHT_INFANTRY);