HTML5 Canvas 2D Framework, ориентированный на обнаружение столкновений и физику - PullRequest
1 голос
/ 03 августа 2011

Я ищу лучший способ управления объектами в контексте холста.Для моего первого проекта я хочу сделать следующее:

  1. Нарисуйте землю.
  2. Опустите круг на землю с обнаружением столкновений и упругостью.
  3. Естькруг «взрывается», вычитая землю под ним (взрыв, который изменяет землю, давая вид, похожий на кратер).

Так что в принципе, каков наилучший способ отслеживать объекты, которые затем изменяются другими объектами.Я предполагаю, что вы могли бы отслеживать все изменения объекта в массиве, но мне было любопытно, есть ли какие-нибудь хорошие рамки для чего-то подобного.Спасибо!

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

Если вы пытаетесь построить танковую игру (оружие, которое разрушает землю), вам лучше всего не отслеживать местонахождение того, что находится / не находится на земле, так как в итоге вы получите абсурдные фигуры , Вместо этого используйте холст и изображение самой земли в качестве этого объекта. У Canvas есть методы для получения цвета пикселя в определенной точке, который вы можете использовать для проверки «есть ли здесь основание». Тогда ваш взрыв просто сотрет часть холста, и вы запустите петлю, чтобы любая плавающая земля «упала»

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

1 голос
/ 03 августа 2011

что вам нужно, это Javascript 2D Game Engine который можно найти здесь http://www.lukewallin.co.uk/?go=engine Вот демо: http://www.lukewallin.co.uk/singleplayer_games/sandbox4/sandbox.php?id=21 Там даже есть взрывы:)

1 голос
/ 03 августа 2011

Я бы заглянул в порт box2d для javascript для использования с элементом canvas html5.Я использовал его для вспышки в прошлом, и это надежный двигатель.Он сделает все столкновения и физику за вас, поэтому все, что вам нужно сделать, это прослушать обратные вызовы и соответственно изменить изображение.

...