我有一个敌人击中了一堆瓷砖,并通过一个循环,我检查所有的瓷砖,如果敌人正在击中他们。我跟踪它们,有些人会告诉我它是真是假。我希望能够让敌人从那些真实的东西中随机选择,并继续那些瓷砖。它跟踪与敌人接触的所有瓷砖,问题是,我不确定如何将那些注册为真的瓷砖放入其自己的阵列中,然后让敌人随机移动到这些瓷砖中。
for (var j:int = 0; j < tileset.length; j++){
trace(tileset[j].currentFrameLabel, tileset[j].hitTestObject(enemy));
if (tileset[j].hitTestObject(enemy) && !tileset[j].hitTestObject(player)){
options.push(Boolean(true));
}
function timerenemy (event:TimerEvent) {
var options:Array = [];
for (var j:int = 0; j < tileset.length; j++){
if (tileset[j].hitTestObject(enemy) && ! tileset[j].tileMiddle.hitTestObject(player)) {
//trace(tileset[j].currentFrameLabel, tileset[j].hitTestObject(enemy));
tileset[j].outline.gotoAndStop("attack");
options.push(tileset[j]);
}
if (options.length > 0){
var enemyPick:int = Math.floor(Math.random()*options.length)
}
}
trace(enemyPick, options);
}
答案 0 :(得分:1)
首先,创建一个数组,其长度是可接受的最大数量。例如,在直线的瓷砖中,一次只能有两个瓷砖可用。现在,每当你需要敌人移动瓷砖时,将一个计数器初始化为0.然后,循环遍历每个瓷砖,并“询问”它是否触及敌人。如果是它,将其记录在数组[计数器]中,并递增计数器。在循环之后,从0到(计数器)选择一个随机数,并使用数组[随机数]作为敌人移动到的区块。