Я пытаюсь заставить MovieClip следовать за другим MovieClip до контакта. Один мувиклип движется акселерометром - PullRequest
0 голосов
/ 04 июля 2018

Это часть моего кода, но враги все еще не следуют за кораблем. Есть идеи, что я могу сделать? корабль движется на акселерометре, и враги появляются из-за спускающегося экрана. Некоторая помощь будет очень признательна

        //Move Enemies towards Player//
        var speed = 5;
        if( enemies.x < ship.x )
{
    if( enemies.x + enemies.speedX > ship.x )
    {
        enemies.x = ship.x;
    }
    else
    {
        enemies.x += enemies.speedX;
    }
}
else if( enemies.x > ship.x )
{
    if( enemies.x - enemies.speedX < ship.x )
    {
        enemies.x = ship.x;
    }
    else
    {
        enemies.x -= enemies.speedX;
    }
}

if( enemies.y < ship.y )
{
    if( enemies.y + enemies.speedY > ship.y )
    {
        enemies.y = ship.y;
    }
    else
    {
        enemies.y += enemies.speedY;
    }
}
else if( enemies.y > ship.y )
{
    if( enemies.y - enemies.speedY < ship.y )
    {
        enemies.y = ship.y;
    }
    else
    {
        enemies.y -= enemies.speedY;
    }
}

        //move enemies//
        if (enemies.length != 0) {
            for (var j: int = 0; j < enemies.length; j++) {
                enemies[j].y += 5;
            }
        }

Заранее спасибо ...

1 Ответ

0 голосов
/ 05 июля 2018

Я согласен с Organis. Враги действительно являются массивом, поэтому для доступа к их x и y вам понадобятся враги [0] .x. Чтобы это исправить, я бы поместил координаты x в цикл for, как у вас, для координаты y.

В качестве альтернативы, в зависимости от того, сколько у вас врагов, я бы добавил класс врагу. Таким образом, враг будет появляться и знать, что делать в своем классе. Я думаю, что это было бы проще, так как не требовалось бы убирать массив, когда враг был удален. Вы также можете адаптировать его так, чтобы у каждого врага было случайное значение скорости, позволяющее получить более динамичные результаты.

Удачи

Edit:

Хорошо, вот мой плохой только что понял, что я не очень ясно. что я имею в виду это:

 //move enemies//
    if (enemies.length != 0) {
        for (var j: int = 0; j < enemies.length; j++) {
            enemies[j].y += 5;
        }
    }

Работает нормально. Каждый враг будет двигаться 5 раз, когда на него ссылаются. Почему бы вам не скопировать и не вставить оставшуюся часть кода в этот цикл, а вместо использования врагов.х используйте врагов [j] .x.

Я думаю, что класс для каждого отдельного врага будет лучшим решением, и я думаю, что вы должны взглянуть на него.

Надеюсь, что это имеет больше смысла и снова приносит свои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...