Рисование тела box2D(java) через LWJGL.
| |
last2424 | Дата: Суббота, 20 Декабря 2014, 09:09 | Сообщение # 1 |
30 мл. блоков
Сейчас нет на сайте
| Здрасте. Есть такая вот проблемка.
Более менее разобрал уроки вот этого человека.
В уроке 31, где он рассказывает про jbox2D и рисование тел в LWJGL.
Посмотрел весь урок, понял то что смог, но вот на счёт следующего кусочка кода так и не разобрался.
PolygonShape.setAsBox(hx, hy);
Не понял, что за такие hx, hy. Из-за этого трудности с рисованием.
Вот пример кода как я рисую квадрат: Код glBegin(GL_QUADS); //запускаю рисование квадрата glColor3f(1.0f, 0, 0); //задаю цвет квадрата glVertex2f(-hx*30, -hy*30); //вершина glVertex2f(-hx*30+32, -hy*30);//2 вершина glVertex2f(-hx*30+32, -hy*30+32);//3 вершина glVertex2f(-hx*30, -hy*30+32);//4 вершина, ну у квадрата ведь 4 вершины glEnd(); Но он рисует не только не там где находится тело, а где то правее, левее, а может вообще в другом углу дисплея это сделать. Кто знает как можно правильно рисовать их?
Те кто работает на LibGDX жду ваших ответов тоже, ведь наши средства не отличаются, в вашем движке тоже LWJGL и box2d используется.
Добавлено (20 декабря 2014, 09:09) --------------------------------------------- UP!
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Суббота, 20 Декабря 2014, 09:33 |
|
| |
Egoor | Дата: Суббота, 20 Декабря 2014, 11:00 | Сообщение # 2 |
участник
Сейчас нет на сайте
| hx и hy - скорее всего некий коэффициент, который преобразует экранные координаты в координаты box2D, да и вообще графики, если я правильно выражаюсь. Для Box2D очень часто создают свою координатную систему, в которой вьюпорт будет, например, 5x5 и преобразуют при отрисовке в экранную.
|
|
| |
last2424 | Дата: Суббота, 20 Декабря 2014, 13:20 | Сообщение # 3 |
30 мл. блоков
Сейчас нет на сайте
| Egoor, решил загуглить, было написано что у swing, hx, hy это ширина и высота, значит это ширина и высота тела, но всё же, причём тут десятичные и рисование? Но всё же, есть ещё одна причина по которой можно считать что это не ширина и высота, ведь когда например поставишь 16, то он полетит куда то вверх.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Суббота, 20 Декабря 2014, 13:24 |
|
| |
yavl | Дата: Суббота, 20 Декабря 2014, 15:15 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| Цитата last2424 ( ) PolygonShape.setAsBox(hx, hy); Не понял, что за такие hx, hy. Из-за этого трудности с рисованием. половина высоты и ширины, т.е что-то типа радиуса
Цитата last2424 ( ) hx, hy это ширина и высота, значит это ширина и высота тела, но всё же, причём тут десятичные и рисование? в Box2D размер не в пикселях, а в метрах, н-р 20 сантиметров это "0,20f", поэтому число должно быть десятичное.
Сообщение отредактировал yavl - Суббота, 20 Декабря 2014, 15:19 |
|
| |
last2424 | Дата: Суббота, 20 Декабря 2014, 19:01 | Сообщение # 5 |
30 мл. блоков
Сейчас нет на сайте
| yavl, тогда сколько bsm(box2d сантиметров) будет в 1 пикселе, примерно, раз знаете как это работает, думаю вам не сложно будет определить(эту информацию очень нужно узнать, что бы составить себе хороший способ вычисления всего этого)?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
Egoor | Дата: Суббота, 20 Декабря 2014, 20:11 | Сообщение # 6 |
участник
Сейчас нет на сайте
| last2424, Я так понимаю 30, здесь координата в пикселях. Не забывайте еще, что hx и hy с минусом.
|
|
| |
last2424 | Дата: Суббота, 20 Декабря 2014, 20:15 | Сообщение # 7 |
30 мл. блоков
Сейчас нет на сайте
| yavl, тогда сколько bsm(box2d сантиметров) будет в 1 пикселе, примерно, раз знаете как это работает, думаю вам не сложно будет определить(эту информацию очень нужно узнать, что бы составить себе хороший способ вычисления всего этого)?
P.S. лагануло.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Сообщение отредактировал last2424 - Суббота, 20 Декабря 2014, 20:16 |
|
| |
|