最初,数组保持默认值为100.一旦敌人失去其健康状态,我想将默认值从100设置为0.当所有数组元素的值都为0时,该消息将跟踪为游戏取胜。
var enemyHealth:Array = new Array(100,100,100,100,0);
for (var i = 0; i< enemyHealth.length; i++)
{
if (enemyHealth[i] == 0)
{
trace ("game win");
}
}
实际上问题是,如果数组元素中的任何一个值为0,那么它会在游戏获胜时追踪按摩。
在这方面,任何人都可以帮助我。
答案 0 :(得分:1)
我会做这样的事情
var enemyHealth:Array = new Array(100,100,100,100,0);
var isDead:Boolean = true;
for (var i = 0; i< enemyHealth.length; i++)
{
if (enemyHealth[i] != 0)
{
isDead = false;
break;
}
}
if(isDead)
{
trace ("Game Win");
}
答案 1 :(得分:1)
您需要检查所有元素,而不仅仅是一个:
var allZero:Boolean = true;
var enemyHealth:Array = new Array(100,100,100,100,0);
for (var i = 0; i< enemyHealth.length; i++)
{
if (enemyHealth[i] != 0)
{
allZero = false;
break; // We know it's not a win, so we can stop the loop early
}
}
if (allZero) {
trace ("game win");
}
答案 2 :(得分:1)
你可以做其他回答者所说的或类似的事情,这可能会帮助你更多地获得确切数量的敌人死亡。
var enemyHealth:Array = new Array(100,100,100,100,0);
var enemiesDead:int=0;
for (var i = 0; i< enemyHealth.length; i++)
{
if (enemyHealth[i] == 0)
{
enemiesDead++;
}
}
if(enemiesDead==enemyHealth.length)
{
trace("Game Over");
}
答案 3 :(得分:1)
您可以使用every
方法检查数组(或矢量)的每个元素是否符合标准。
const enemyHealth:Vector.<uint> = new <uint>[100,100,100,100,0];
const zeroHealth:Function = function(item:uint, index:int, vector:Vector.<uint>):Boolean {
return item === 0;
}
if (enemyHealth.every(zeroHealth)) {
trace("Game win")
}
我已将array
更改为Vector
,因为它们效率更高,您可以指定元素的类型,但它也适用于array
。