Как использовать изображение в качестве спрайта в libGDX?

#java #libgdx

Вопрос:

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

 public void definePlayer() {
        BodyDef bodyDef = new BodyDef();
        bodyDef.position.set(32 / MyProject.PPM, 32/MyProject.PPM);
        bodyDef.type = BodyDef.BodyType.DynamicBody;
        body = world.createBody(bodyDef);

        FixtureDef fixtureDef = new FixtureDef();

        CircleShape shape = new CircleShape();
        shape.setRadius(5 / MyProject.PPM);

        fixtureDef.shape = shape;
        body.createFixture(fixtureDef);
    }
 

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

Ответ №1:

То, что вы сейчас используете для рисования физических объектов, на самом деле является отладочным средством визуализации. Это инструмент, позволяющий сделать вашу физическую симуляцию видимой. И он не используется для «фактического» рендеринга.

Физическое моделирование является, а также должно быть отделено от рендеринга.

Поэтому, чтобы сделать ваш объект похожим на реальную вещь, вы должны визуализировать свое изображение(спрайт) с тем же расположением, поворотом и масштабом, что и ваш физический квадрат. Таким образом, ваше изображение будет копировать движение вашего физического объекта и создаст иллюзию реального объекта.

Я настоятельно рекомендую вам ознакомиться с официальной документацией, которая, на мой взгляд, является лучшим местом для изучения libGDX.

Также посмотрите вкладку «Спрайтбэтч, текстовые области и спрайты», где вы можете прочитать больше о том, как визуализировать материалы.