Slick2D и JBox2D. Как нарисовать
Прежде чем спросить это, я сделал много поиска в сети. Я просто не могу этого сделать. Мне немного сложно это понять. Итак, как мне нарисовать изображения в правильных положениях экрана, соответствующих телам в мировом положении? Thanx.
Если кто-то еще найдет себя перед тем же препятствием, я отправлю HOW TO, спасибо хорошему объяснению normalocity. Вы можете найти это здесь:http://romeo.akademx.ro/2012/04/06/slick-and-box2d/
Это функция рендеринга:
public void render(GameContainer container, StateBasedGame game, Graphics g)
throws SlickException {
g.setBackground(Color.white);
g.pushTransform();
g.translate(worldToScreen(body.getPosition()).x, worldToScreen(body.getPosition()).y);
g.rotate(15, 15, (float) Math.toDegrees(body.getAngle()));
part.draw();
g.popTransform();
g.drawString("Count: " + cont, 5, 40);
//world.drawDebugData();
}
И это функция, которую я использую для преобразования координат мирового экрана:
public Vec2 screenToWorld(Vec2 screenV) {
return new Vec2((screenV.x - offset.x) / scaleFactor, yFlip
* (screenV.y - offset.y) / scaleFactor);
}
public Vec2 worldToScreen(Vec2 worldV) {
return new Vec2(worldV.x * scaleFactor + offset.x, yFlip * worldV.y
* scaleFactor + offset.y);
}
Мне также довелось использовать SlickDebugDraw по этой ссылке:http://slick.javaunlimited.net/viewtopic.php?f=19&t=3610&sid=69614ac53aaf5724b808b75173e8e48e
Но его DebugDraw рисует совсем другое, чем моя функция рендеринга. Я немного смущен.