1

В настоящее время я делаю flappy bird, и я изменил его с прямоугольников на свои собственные изображения и т. Д. Я не могу понять, как это сделать, когда птица (неправильная форма) попадает в прямоугольник, она умирает. Я не знаю, как кодировать столкновение, когда это странная форма. Вот изображение. Я рисую такую ​​птицу.Столкновение с изображением (неправильная форма)

var img = document.getElementById("bird"); 
brush.drawImage(img, 20, this.y); 

Прилагается изображение игры, птицы и кода.

Picture of the game

Picture of the game

+0

Возможный дубликат [Обнаружение столкновений нерегулярных фигур] (http://stackoverflow.com/questions/11367991/collision-detection-of-irregular-shapes) – djechlin

ответ

0

Вам необходимо внедрить коллайдеры. Они готовы к использованию в игровых двигателях, таких как Unity, но если вы хотите это реализовать, подумайте:

  1. Создайте компоненты коллайдера для вашей птицы и стен. Collidiers - это упрощенные формы, которые упрощают и ускоряют алгоритмы обнаружения столкновений относительно скорости процессора. Например, для птицы это может быть круг вокруг него и прямоугольники для ваших стен.
  2. Во время вашего обновления фрейма проверьте, пересекается ли круг окружности с прямоугольными стенками. Это простая математика, вы можете найти формулы для «пересечения прямоугольника прямоугольника» в google.
  3. Если обнаружен конфликт - ваша птица должна рухнуть)

Вот оно!

0

Вот хорошая книга по теме: 2D Detection игры Collision: Введение в сталкивающихся геометрии в играх Томас Schwarzl

Его можно найти, например, здесь http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision

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

+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и укажите ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/10393805) –

+0

Я редактировал в названии книги. – REISWOLF