обнаружение столкновений

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

Мяч падает с верхней части экрана. Ниже есть три перетаскиваемые платформы. По сути, мне нужно, чтобы мяч ударился о платформу, а затем покатился по ней, пока не достиг края и не упал.

Это обнаружение важно для игры, которую я создаю (кстати, я веб-разработчик, а не разработчик игр, но я знаю JavaScript, поэтому это было поручено мне), так как оно также будет определять подсчет очков (есть цель внизу). Я чувствую, что если бы я мог получить помощь в обнаружении и изменении направления, я мог бы сделать все остальное.

Спасибо.


person David Greer    schedule 15.01.2013    source источник


Ответы (1)


Я не думаю, что вам нужно отягощаться box2d. Есть небольшая кривая обучения, и, похоже, она вам не нужна, если только вы не хотите, чтобы ваш мяч реалистично отскакивал от платформ.

Вот ссылка на очень простую и легко читаемую функцию обнаружения столкновений: http://www.gamedev.net/page/resources/_/technical/game-programming/collision-detection-r735

Обратите внимание, что в этом примере считается, что ось Y начинается в верхней части экрана с положительным направлением вниз.

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

После этого вам нужно будет проверить, коснулся ли мяч цели. Если это так, добавьте к счету, включите несколько прибамбасов и дайте игроку начать все сначала.

person Tom Grasman    schedule 16.01.2013
comment
Большое спасибо, Том. Платформы действительно плоские, поэтому все должно быть просто. Я думаю, когда я заставлю его обнаружить столкновение между мячом и платформой, я смогу заставить его катиться по оси x, а затем вернуться к оси y, когда он достигнет края. Я ценю вашу помощь. - person David Greer; 16.01.2013