Работа с одновременными коллизиями в Java - PullRequest
0 голосов
/ 18 марта 2019

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

Ниже у меня есть класс Collision, который обрабатывает столкновения между игроком и врагом

    // if enemy runs into player will return true
public static boolean Collision (EntityEnemy enemyShips, EntityPlayer entP ) {

        if (enemyShips.getBounds().intersects(entP.getBounds())) {
            return true;
        }

    return false;

}

// returning two enemies colliding with the player 
public static boolean doubleCollision (EntityEnemy enemyShips, EntityPlayer entP ) {

        if (enemyShips.getBounds().intersects(entP.getBounds())) {
            count ++;

            if (count == 2) {
                return true;
            }
    }


    return false;
}

1 Ответ

0 голосов
/ 18 марта 2019

Думай в игре, основанной на ходах. Когда враг поражает игрока и поток, отвечающий за анализ состояния игры, он будет знать каждый перекресток корабля, чтобы вы могли видеть каждый корабль, у которого есть пересечения игрока. Мой совет:

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

...