2015-12-17 3 views
0

Я новичок в AS3, и я работаю над своей первой игрой.AS3 Array Issue

Итак, у меня есть массив войск, который будет добавлен при покупке в магазине.

public var myTroops: Array = [{type: "lightInfantry", hp: "100", def: "10"}, 
{type: "lightInfantry", hp: "100", def: "10"}, 
{type: "heavyInfantry", hp: "100", def: "10"}]; 

Мне нужно найти, сколько раз происходит определенный тип пехоты, а затем проследить его обратно, я нашел другие вопросы с просьбой о помощи, но не для мульти-массивов. Как я получу это? В основном просят о помощи в том, как написать код для возврата, сколько из каждой пехоты у игрока уже есть.

Подсказки и ответы очень ценятся. Заранее спасибо.

+0

сделал вы получите это выяснили? – BadFeelingAboutThis

+0

Благодарим вас за ввод, очень полезно! – Naythan

ответ

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);