Это должен быть быстрый вопрос, с надеждой на быстрый ответ. :) Я использую box2d для проекта боковой скроллера, который я делаю. Все идет хорошо, спасибо за вопрос. : D В любом случае, мой персонаж должен был иметь коробки разного размера, используемые для ограничения. Я думал, что это будет так же просто, как добавление нового крепления к телу, но это не сработало. Он выходит из строя, и я получаю это:Программа Box2D вылетает при использовании нескольких приборов
Java: ./Box2D/Collision/b2Distance.h:103: Const b2Vec2 & b2DistanceProxy :: GetVertex (int32) Const: Утверждение `0 < = индексный & & < m_count 'не удалось.
Я понятия не имею, что это значит. Вот код, который я использую для создания тела и приспособления:
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.DynamicBody;
bodyDef.position.set(level.character.position);
Body body = b2world.createBody(bodyDef);
level.character.body = body;
PolygonShape polygonShapeHead = new PolygonShape();
origin.x = level.character.circleBoundOrigin.x * 2.0f;
origin.y = level.character.circleBoundOrigin.y * 3.0f;
polygonShapeHead.setAsBox(level.character.circleBoundOrigin.x,
level.character.circleBoundOrigin.y, origin, 0);
FixtureDef fixtureDefHead = new FixtureDef();
fixtureDefHead.shape = polygonShapeHead;
fixtureDefHead.friction = level.character.friction.x;
body.createFixture(fixtureDefHead);
polygonShapeHead.dispose();
PolygonShape polygonShapeBod = new PolygonShape();
origin = level.character.rectBoundOrigin;
polygonShapeHead.setAsBox(level.character.rectBoundOrigin.x,
level.character.rectBoundOrigin.y, origin, 0);
FixtureDef fixtureDefBod = new FixtureDef();
fixtureDefBod.shape = polygonShapeBod;
fixtureDefBod.friction = level.character.friction.x;
body.createFixture(fixtureDefBod);
polygonShapeBod.dispose();
Насколько я знаю, что я делаю все правильно. Так почему это не работает? Почему он падает? Я использую fixturedef. Возможно, это может быть проблемой. Благодаря!
Знаете ли вы, в какой строке происходит ошибка в коде, который вы нам дали? – kabb
Нет, к сожалению. Единственное, что появилось в консоли, - это сообщение выше. – user2082169
Я просто запустил его, и он сработал. Рана это снова, то же сообщение. Иногда это работает, иногда это не так. Что происходит. : | – user2082169