Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Box2D] Создание игрового уровня (http://www.flasher.ru/forum/showthread.php?t=152194)

TEI 13.03.2011 15:03

Создание игрового уровня
 
Здравствуйте. Начал изучать Box2D и попутно создавать платформер. Есть несколько вопросов. Они не сложные, но разобраться сам никак не могу.
1. Создать статический объект, с измененным углом. Область расширяется и создается с ошибками.
Код AS3:

ground.angle = zona3.rotation * (Math.PI/180);

2. Никак не пойму, как это расшифровать для связки объектов по типу "Болтовое соединение".
Код AS3:

b2RevoluteJointDef jointDef;
jointDef.Initialize(myBody1, myBody2, myBody1->GetWorldCenter());

3. Как удалять объекты? Мне подойдет и "грязный вариант". Пример не удаляет форму.
Код AS3:

b2Body.DestroyShape(b2Shape)

Спасибо

Alex Lexcuk 13.03.2011 18:31

статический объект крутить не надо, его надо уже поверным создать из
Код AS3:

var bulletPolygonShape:b2PolygonShape = new b2PolygonShape();
bulletPolygonShape.SetAsArray([new b2Vec2(0, 0), new b2Vec2(1, 1), new b2Vec2(0, 1),new b2Vec2(0, 0)], 3);

треугольничек получится, надо в определенную сторону от часовой стрелки закручивать вертексы и фигура должна быть выпуклой.

b2RevoluteJointDef - никогда не юзал и не пойму зачем оно надо.

Объекты надо удалять через
Код AS3:

myWorld.DestroyBody(bulletBody);


goodguy 13.03.2011 19:13

Цитата:

статический объект крутить не надо, его надо уже поверным создать из
Не обязательно. Крутить проще. Для этого используются метод SetXFrom в box2d 2.0 или SetTransform в 2.1а

Цитата:

b2RevoluteJointDef - никогда не юзал и не пойму зачем оно надо.
По-моему даже по названию очевидно, для вращающегося шарнира.

Цитата:

2. Никак не пойму, как это расшифровать для связки объектов по типу "Болтовое соединение".
Ну а что не понятного? первые два параметра, это тела которые соединяются, а третий, это место соединения. Данная конструкция не очень гибкая. Я обычно юзаю localAnchor1 и localAnchor2
для точного указания какая точка первого тела используется для прикрепления, к какой точке второго.
После создания описания шарнира, нужно создать сам шарнир в мире.
Код AS3:

myWorld.CreateJoint(_jointDef) as b2RevoluteJoint;

Цитата:

3. Как удалять объекты? Мне подойдет и "грязный вариант". Пример не удаляет форму.
Надо удалять тела из мира


Часовой пояс GMT +4, время: 18:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.