Как создать пользовательские данные с помощью box2d

#java #libgdx #box2d

#java #libgdx #box2d

Вопрос:

Я пытаюсь добавить пользовательские данные в тело:

 Body body = world.createBody(foo);  
body.setUserData(ObjectStuff);
  

И когда я повторно получаю данные, они всегда возвращают значение null. Я знаю, что это из-за способа, которым я установил данные.

Редактировать:

Я бы извлек данные непосредственно из тела, и теперь я вижу, что при этом потенциально могут возникнуть проблемы.

 Array<Body> bodies = new Array<Body>;
world.getBodies(bodies);
for(int i=0; i<bodies.size;i  ) {
    Body body = bodies.get(i);
    Object foo = (Object) body.getUserData();
}
  

Ответ №1:

Вы задаете пользовательские данные правильным образом, покажите код, из которого вы их получаете body . Также убедитесь, что вы вызываете: fixtureA.getBody().getUserData(); а не просто fixtureA.getUserData(); . У приспособления и тела разные пользовательские данные.

Комментарии:

1. Или body.createFixture(FixtureDef).setUserData(obj)