Вот моя дилеммаЧто такое более эффективный способ совершения столкновений?
У меня есть 4 стены вокруг стадии моей игры, когда игрок попадает эти стены я не хочу, чтобы сделать, если заявление для всех и каждого из стен проверки, если игрок бьет его , поэтому я создал массив для удержания стен, а затем проверить, ударил ли игрок. Теперь, потому что я делаю это, я не буду знать, что игрок на самом деле наносит удар, если он что-то наткнулся, и я не могу сделать чек в моем массиве, если он бьет как [0], [1], [2]
и т. Д., Потому что тогда я вернусь к проверке, если он бьет конкретные стены. Причина, по которой я не хочу этого делать, - это будущее, когда я добавляю больше барьеров, зданий и т. Д.
Итак, мой вопрос заключается в том, как я могу выполнять проверки на столкновении, без жестких проверок кодирования конкретных объектов и предоставления какого-то значения, которое может использоваться для ответа игрока, например, если вы нажмете верхнюю стенку и вы можете понять, что как-то не делать выше, то сделать это так, вы не можете пройти через или что-то,
if (main.playerPosKeeper_mc.hitTestObject(this[main.StageCollisions]))
{
trace("hit");
}
StageCollisions массив, который содержит все мои барьеры в нем.
Когда игрок ударяет что-либо в StageCollisions, я не могу просто просто вычесть его значение y или значение x, потому что я не знаю, какой объект он ударил, , но я также не хочу его жестко кодировать, чтобы я проверьте, не ударился ли я, скажем, верхний барьер, потому что тогда зачем нужен массив, если я только вернусь к созданию статических if else-заявлений.
^^ Refrencing эту тему
AS3 - How to Cycle States of Character Animations (moving & stopped)
Это было топало меня на некоторое время, так что помощь будет высоко оценен. Это сложный вопрос, поэтому я могу уточнить моменты, если это необходимо.
Итак, вы хотите сохранить героя в определенном прямоугольнике при обработке четырех граничных стенок в петле? – Organis
Не обязательно, я делаю проверку на столкновение, и мне интересно, как я могу узнать, на какую стену игрок бьет, не проверяя каждую стену, которую у меня есть, а затем дайте соответствующие команды. Моя настоящая цель - отойти от жестких коллизионных проверок с конкретными объектами, так как если я сделаю игру более крупной, мне придется делать больше проверок на определенные объекты. Тема, в которую я включал ответ от пользователя Vesper, - это то, над чем я пытался работать, но заслуживаю своей темы. Возможно, я могу переоценить это, но да. – UnAlpha
Кроме того, забыл упомянуть, что я делаю проверку столкновений после того, как нажата кнопка dpad, мне сказали использовать циклы, прежде чем, вероятно, используя прослушиватель событий, который активирует каждый кадр, но я думаю, что более простой и эффективный способ было бы проверить только, когда вы нажмете на клавиатуру, где она переместит вас в направлении, проверьте, ударило ли вы что-то, если вы что-то ударили, верните назад, но затем я поднимаю вопрос выше, где я не знаю, m, и я не хочу жестко проверять код на конкретных объектах ради будущего, если я хочу добавить больше стен и вещей. – UnAlpha