FadeBaker | Дата: Воскресенье, 26 Июля 2015, 18:50 | Сообщение # 1 |
JavaSE Game Developer
Сейчас нет на сайте
| Приветствую. Нужен эффективный и производительный алгоритм симуляции жидкостей для тайловой карты, которую можно увидеть в игре Terraria. Сам алгоритм я реализовал, но столкнулся с проблемой обновления тайлов с водой. Желательно было бы обновлять всю карту, но это, разумеется, невозможно. А обновлять лишь небольшой кусок карты, в котором находится игрок, тоже не очень правильно, поскольку, скажем, вода никогда не выльется за пределы этих абстрактных границ. Например, будут большие скопления воды внизу, и по мере продвижения игрока вниз вода будет в больших количествах стекать на его глазах, когда давно уже должна была стечь. Как тут быть? Хотел в отдельном потоке обрабатывать, но это тоже не вариант. Поиски в гугле ни к чему не привели.
В общем, жду советов и решений, ну и заранее спасибо.
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
Fumlead | Дата: Воскресенье, 26 Июля 2015, 20:03 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Приходит на ум такой алгоритм: Пробегаемся по всей карте, определяем, нужно ли считать изменение уровня воды для каждого тайла. Если не нужно - кэшируем, если нужно - считаем. Далее считаем только то, что нужно (нет в кэше). Если игрок творит беспредел копает рядом с водой - повторяем проверку на нужно/не нужно, опять же кэшируем-считаем.
Параноик с гениальным планом по захвату мира.
|
|
| |