Подтвердить что ты не робот

Libgdx Сценарий SpriteBatch для текстуры

Можно ли визуализировать текстуру с помощью SpriteBatch в libGdx (Java-движок для Android/Desktop)? Если да, как это сделать?

В принципе, я хочу отображать все на 320 x 240 с областью 512 x 256 и областью масштабирования, чтобы соответствовать экрану (в ландшафтном режиме). Таким образом я хочу устранить артефакты, которые происходят, когда я масштабирую альфа-смешанные текстуры независимо. Если есть другой способ удаления таких артефактов, укажите их:)

И есть ли онлайн-документация для libGdx?

4b9b3361

Ответ 1

Этот фрагмент был предоставлен мне на форуме LibGDX, и он работает безупречно.

private float m_fboScaler = 1.5f;
private boolean m_fboEnabled = true;
private FrameBuffer m_fbo = null;
private TextureRegion m_fboRegion = null;

public void render(SpriteBatch spriteBatch)
{
    int width = Gdx.graphics.getWidth();
    int height = Gdx.graphics.getHeight();

    if(m_fboEnabled)      // enable or disable the supersampling
    {                  
        if(m_fbo == null)
        {
            // m_fboScaler increase or decrease the antialiasing quality

            m_fbo = new FrameBuffer(Format.RGB565, (int)(width * m_fboScaler), (int)(height * m_fboScaler), false);
            m_fboRegion = new TextureRegion(m_fbo.getColorBufferTexture());
            m_fboRegion.flip(false, true);
        }

        m_fbo.begin();
    }

    // this is the main render function
    my_render_impl();

    if(m_fbo != null)
    {
        m_fbo.end();

        spriteBatch.begin();         
        spriteBatch.draw(m_fboRegion, 0, 0, width, height);               
        spriteBatch.end();
    }   
}

Ответ 2

На данный момент я бы рекомендовал использовать Pixmap s. Понимаете, для них написано не так много функций, но, видимо, вы можете написать Pixmap (с альфа-каналом) в другой (pm1.drawPixmap(pm2, srcx, srcy, w, h, ...)), если вы не хотите его масштабировать (вы можете масштабировать позже, но пропорция, которую изображения, используемые в композиции, не будут изменены... если вы не напишите функцию изменения размера).

Если вы хотите делать более сложные вещи (например, писать строку с помощью BitmapFont в Texture для последующей обработки или записывать ее в Pixmap, а затем загружать ее в видеопамять)... тогда скажите мне, если вы преуспеете (как я хочу идти в этом направлении, чтобы оптимизировать). Я думаю, что лучше всего было бы добавить необходимые функции в libgdx...

Во всяком случае, не принимайте ничего, что я написал здесь, как неоспоримую истину - если я получу дальше, я обновлю.

Документация , которую я нашел, несколько ограничена - я уверен, что вы уже прошли через нее. Там есть информация в блоге badlogic и на странице проекта googlecode, а также есть относительно хорошая книга, написанная Марио "Начало игр для Android". Кроме того, есть несколько (очень простых) видео. И не забывайте, что вы можете проконсультироваться с источником и красивыми примерами...

Кроме того, вы всегда можете задать вопрос на форуме: http://badlogicgames.com/forum/

UPDATE: Ваш ответ, используя <Т26 > и TextureRegion, несомненно, намного лучше. Я оставляю это только потому, что он упоминает документацию.