Как я могу узнать, каждое ли значение в массиве меньше определенного числа? - PullRequest
0 голосов
/ 26 мая 2020

Я хочу, чтобы персонаж в моей игре двигался вверх, когда он подпрыгивает на платформе. Для этого я вычислил расстояние x и y между каждой платформой и моим персонажем, а затем поместил эти значения в два массива: один для расстояния x, а другой - для расстояния y между ними. Если персонаж находится на платформе, я хочу, чтобы он двигался вверх. Как я могу определить, меньше ли значение в массивах определенного числа? Я знаю, что мой код очень неэффективен, но я тоже не знаю, как его улучшить.

    function loop(e:Event):void{

var plats:Array = new Array();
//adding platforms to array
  plats.push(plat1);
  plats.push(plat2);

//calculating distance between platform and character

var distx1 = Math.sqrt((doodler.x - plat1.x)*(doodler.x - plat1.x));
var disty1 = Math.sqrt(((doodler.y + 50) - plat1.y)*((doodler.y + 50) - plat1.y));
var distx2 = Math.sqrt((doodler.x - plat2.x)*(doodler.x - plat2.x));
var disty2 = Math.sqrt(((doodler.y + 50) - plat2.y)*((doodler.y + 50) - plat2.y));

//adding distance calculations to distance arrays
var disx:Array = new Array();
disx.push(distx1);
disx.push(distx2);

var disy:Array = new Array();
disy.push(disty1);
disy.push(disty2);

  for (var i:int = 0; i < disx.length; i++) {
   //this is where i'm confused
   if(disx[i] < 65 && disy[i] < 3){

      doodler.y -= 100;

       }

1 Ответ

0 голосов
/ 26 мая 2020

Разница между все и любые .

var aFlag:Boolean = true;

for (var i:int = 0; i < disx.length; i++)
{
    aFlag &&= disx[i] < 65;
    aFlag &&= disy[i] < 3;
}

// At this point, aFlag is true ONLY if
// all the conditions are true at the same time.

if (aFlag)
{
    doodler.y -= 100;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...