Задать вопрос
Arti-Jack
@Arti-Jack

Как правильно рисовать спрайты для libGDX?

Доброго времени суток!

Появилась такая проблема, что я никак не могу корректно использовать спрайты.

Вот спрайты ходьбы для теста, которые я пытаюсь правильно впихнуть:
27615e118d0b4183bbf3efabeaf6dfcf.png

И при попытки отрисовки не выходит ничего нормального.
cccd554e18d64b2896efd1fea2e3f027.png

А вот при рендеринге других спрайтов, взятых мною в интернете, все выходит
1a8efdd390ce4af9a114d0b52a2f2352.png

И как результат я вижу смену изображений на экране.

Вот код:

int FRAME_COLS = 2;
    int FRAME_ROWS = 1;
    Animation walkAnimation;
    Texture walkSheet;
    TextureRegion[] walkFrames;
    TextureRegion currentFrame;
    float stateTime;
    private TextureRegion walk1;
    private TextureRegion walk2;


walkSheet = new Texture(Gdx.files.internal("sprites/player/walk/rob3.png"));
        TextureRegion[][] tmp = TextureRegion.split(walkSheet, walkSheet.getWidth() / FRAME_COLS, walkSheet.getHeight() / FRAME_ROWS);
        walkFrames = new TextureRegion[FRAME_ROWS * FRAME_COLS];
        int index = 0;
        for (int i = 0; i < FRAME_ROWS; i++) {
            for (int j = 0; j < FRAME_COLS; j++) {
                walkFrames[index++] = tmp[i][j];
            }
        }

 walkAnimation = new Animation(0.025f, walkFrames);
 stateTime = 0f;


И рендеринг:
Animation a = null;
        stateTime += Gdx.graphics.getDeltaTime();
        currentFrame = walkAnimation.getKeyFrame(stateTime, true);
        if (moveRight) currentFrame = walk1;
        if (moveleft) currentFrame = walk2;
        //


        batch.draw(currentFrame, getX() + 318, getY() + 0, 300f, 300f);


Поэтому такой вопрос:

Как будет правильно рисовать спрайты (соблюдение размеров, каких-либо параметров и т.д) ?

P.S:
Вот ссылки на ресурсы;
не мои
мои спрайты
  • Вопрос задан
  • 660 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
Ну а где код, которым впихиваете?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы