Comments 35
В копилку неточностей, в b2BodyDef для снаряда поставьте потом bullet в true, т.к. сейчас при низком фпс и высокой скорости запуска, он пролетает сквозь объекты.
Для AS3 есть еще шикарный набор видеотуториалов по боксу от Todd'а — www.kerp.net/box2d/
Правда там версия старая и на 2.1а код не взлетит, но для начального понимания — классная штука.
Для AS3 есть еще шикарный набор видеотуториалов по боксу от Todd'а — www.kerp.net/box2d/
Правда там версия старая и на 2.1а код не взлетит, но для начального понимания — классная штука.
+6
пиши, рассказывай и ни в коем случае не останавливайся :)
+11
UFO just landed and posted this here
А объясните, пожалуйста, почему координаты мыши считаются таким образом? Откуда деление на 30?
handleMouse = function(e) {
mouseX = (e.clientX - canvasPosition.left) / 30;
mouseY = (e.clientY - canvasPosition.top) / 30;
};
+1
Видимо из-за
«Так же стоит добавить, что Box2d не оперирует пикселями как данными о координатной сетке. Он изначально пректировался под использование стандарной системы Си — поэтому мы имеем метры, килограммы, секунды, и соответствующие преобразования. Сейчас я не буду углубляться подробно в эту область, просто имейте в виду, что 1 метр в представлении Box2d — это примерно 30 пикселей экранного пространства.»
«Так же стоит добавить, что Box2d не оперирует пикселями как данными о координатной сетке. Он изначально пректировался под использование стандарной системы Си — поэтому мы имеем метры, килограммы, секунды, и соответствующие преобразования. Сейчас я не буду углубляться подробно в эту область, просто имейте в виду, что 1 метр в представлении Box2d — это примерно 30 пикселей экранного пространства.»
+3
Я выше в статье говорил об этом. 1 метр в координатах Box2d при приотсутствии преобразований — это 30px на мониторе. Отсюда и деление на 30, чтобы преобразовать текущую координату мыши в пикселях в координату мира Box2d в метрах.
0
Для того, чтобы не появлялось таких вопросов — следует отказаться от магических чисел и присвоить их значение константе. Такой код не вызвал бы вопросов:
handleMouse = function(e) {
mouseX = (e.clientX - canvasPosition.left) / BOX2D_METER_IN_PIXELS;
mouseY = (e.clientY - canvasPosition.top ) / BOX2D_METER_IN_PIXELS;
};
+6
Спасибо за статью. Хороший мотиватор самому попробовать, что-нибудь «подвигать» с помощью box2d.
+3
Хочу заметить, что иногда резинка не исчезает, и птица, улетев, оттягивается и улетает назад. В чем может быть причина?
+2
Спасибо, очень даже не плохо. Кстати, как с производительностью, например, если сравнивать с Flash-платформой? Порт и для нее есть. Проводили stress-тесты?
0
А можно еще вопрос вот такой: почему доски не проходят «сквозь» игровой мир, а птица может вылетать за него?
0
На самом деле она не пролетает — она исчезает, как другие свиньи на экране. Птица же в примере — это просто летающая свинья, а обработчику соприкосновений в принципе все равно, хоть свинья летит, хоть стоит на месте — он будет обрабатывать ее контакт с кем-то. Значит, при ударе нашей птицесвиньи об стену возникает импульс, явно больший тройки — ну и ее удаляют с поля как взорвавшуюся. Вот и вся магия.
+1
Интересная статья, спасибо
А var при объявлении переменных специально не используете?
А var при объявлении переменных специально не используете?
0
Не за что на самом деле, очень рад, что такие заметки приветствуются.
Var ограничивает область видимости создаваемого объекта, это первое. Второе — нужен был работающий пример, который после можно приводить в чувства. Я обязательно займусь правильным, с точки зрения написания кода на javascript, оформлением — просто в этом случае хотелось чего-то рабочего и побыстрее ^_^
Var ограничивает область видимости создаваемого объекта, это первое. Второе — нужен был работающий пример, который после можно приводить в чувства. Я обязательно займусь правильным, с точки зрения написания кода на javascript, оформлением — просто в этом случае хотелось чего-то рабочего и побыстрее ^_^
+1
Ну, что сказать? Мужик! Я бы тебе даже денег дал, только бы ты закончил эту серию рассказов :)
И все потому, что самому очень руки чешутся создать свою, пускай не интересную другим, игру. Но времени на это катастрофически не хватает.
А вот почитать и посмотреть код — будет очень интересно.
А там, глядишь, и на свою время найдется.
И все потому, что самому очень руки чешутся создать свою, пускай не интересную другим, игру. Но времени на это катастрофически не хватает.
А вот почитать и посмотреть код — будет очень интересно.
А там, глядишь, и на свою время найдется.
0
Очень интересно. Спасибо за хороший пост. Буду применять в своих наработках ;)
-2
UFO just landed and posted this here
Sign up to leave a comment.
JavaScript Gaming: Часть 1. Box2d и основы Физики