Как реализовать огни карты Java-плитки?

1

У меня есть карта 2D-плитки в java (с использованием libgdx no Tiled Map Editor), образованная квадратами, и я хочу, чтобы плитки постепенно становились темнее, пока они не будут видны. Так что в принципе я не хочу круглый свет. Единственный вариант, который я знаю, - это использовать альфа-канал и сделать каждый плит из источника, который является игроком, становится менее заметным. Я хочу знать, как это реализовать, используя шейдер. Я хочу сделать свою карту обычным образом с помощью spritebacth, а затем применить шейдер к моему spritebacth, чтобы я мог визуализировать световой эффект. Каждая плитка должна иметь свою видимость. Пример игры, в которой используется такая молния, я хочу: http://www.desura.com/games/fragile-soul

Теги:
opengl
libgdx

1 ответ

0
Лучший ответ

Выделите каждый фрагмент через SpriteBatch и используйте spriteBatch.setColor(r, g, b, a) с разными "серыми" значениями.

Плитка, в которой находится ваш игрок, начнется с белого, поэтому spriteBatch.setColor(1, 1, 1, 1) прежде чем сделать это. И затем линейно уменьшите яркость для других в радиусе вокруг.

Например, все плитки, расположенные рядом с игроком, могут получить spriteBatch.setColor(0.8f, 0.8f, 0.8f, 1f) приводит к чуть более темной черепице. Вы делаете это, пока не достигнете черного цвета через spriteBatch.setColor(0, 0, 0, 1). Все эти плитки будут полностью черными.

  • 0
    Разве это не потребует много ресурсов, сбрасывая цвет партии в каждом кадре?
  • 0
    Ресурсы? Какие ресурсы? Я думаю, что это не заставляет SpriteBatch сбрасываться, по крайней мере, это не задокументировано. Я предполагаю, что это не будет проблемой.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню