Я строю простой пример крестики-нолики с LibGDX. У меня есть простые изображения: крест, круг и доска, все они png
созданы с помощью GIMP с прозрачным фоном.
Как я могу сделать их Texture
прозрачными?
Я пробовал с функцией включения GL10, но, похоже, не работает.
java
libgdx
lwjgl
transparency
Vokail
источник
источник
Ответы:
SpriteBatch # enableBlending
перед рендерингом:
источник
Создайте Sprite и присвойте ему текстуру, затем используйте Sprite setColor, чтобы настроить его альфа, например,
и в цикле render () используйте SpriteBatch
источник
Если вы положите
в начале цикла render () необходимо обновить экран черным цветом. Так что, если какие-либо изображения имеют прозрачность, это будет заметно.
так что ваш цикл render () может выглядеть так
источник
Я также попытался отрисовать .png с прозрачностью. С базовой настройкой (смешивание не активировано) он не рендерился должным образом.
Я никогда не активировал смешивание, но я добавил это:
Моя проблема была в том, что альфа никогда не очищалась. Это означает, что если бы я рендерил с альфа 0,1, потребовалось бы 10 кадров, пока альфа не будет «сложена» обратно до 1. Добавление вышеупомянутого вызова очистило альфу, как вы бы очистили цвет.
Я знаю, что это старый вопрос, поэтому решения тогда были другими. enableBlending все еще должен работать, но я не уверен, предотвращает ли это «наложение» альфы. Очистка альфа-битов, пожалуй, самый простой способ предотвратить надежный внешний вид.
Что касается фактического рендеринга, это то же самое, что и всегда.
источник