У меня есть противник, поражающий кучу плиток, и через петлю я проверяю все плитки, если противник ударяет их. Я прослеживаю их, и некоторые скажут мне, верно это или ложно. Я хочу, чтобы враг случайно выбирал из тех, которые верны, и продолжайте эти плитки. Он отслеживает все плитки, которые находятся в контакте с противником, проблема в том, что я не уверен, как я могу получить те плитки, которые регистрируются как истинные, в свой собственный массив, а затем враг перемещается случайным образом в эти фрагменты.push объекты, которые равны true, в массив
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));
}
EDIT: вот моя функция таймера, где каждый 5 вторых, я хочу, чтобы противник, чтобы перейти к доступному плитке. Хотя вы не можете видеть набор элементов, это массив, равный мувиклипу, который является плиткой, которая находится в самом цикле for. Так что, в основном, набор фрагментов - это 49 фрагментов фильма. У меня есть эти доступные плитки, вложенные в другой массив, который является параметрами. Затем я делаю var, называемый enemyPick, который будет счетчиком. Вот как я далеко.
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);
}
Благодарим за помощь. Думаю, я все собрал, пока не соединил счетчик с фактической плиткой. Как мне это сделать? – Bindlestick
Когда вы просматриваете каждый фрагмент, просто обращайтесь к тайному набору [current_tile], а не к набору метка [j]. При записи приемлемой плитки скопируйте файл плитки [current_tile] (фактическая плитка) в okTiles [counter]. Затем вы выбираете случайный элемент из okTiles, и вы можете ссылаться на него, как на обычную плитку. --EDIT-- О, я вижу, это ActionScript, а не Java. Вышеизложенное может не работать. Вместо этого вы можете записать current_tile (а не ticket [current_tile]) в okTiles [counter]. И в конце, вместо ссылки на okTiles [rand_element], обратитесь к тэктовому набору [okTiles [rand_element]]. – MegaWidget
Кроме того, если вы нашли мой ответ полезным, вы можете «принять» его, нажав зеленую отметку (отметьте) рядом с ней. – MegaWidget