Як я можу створити градійований туман війни?


14

Я створюю гру 2D RTS зверху вниз для освітніх цілей. В даний час я дійсно просто копіюю дизайни та ідеї Starcraft. Я вирішив, що, мабуть, я теж повинен реалізувати Fog Of War.

Мої очікування:

  • Наразі досліджувані території (одиниці є) повинні бути освітлені.
  • Ділянки, які були попередньо досліджені (одиниці були там), повинні бути темнішими, але покажіть, що там було , коли ваш підрозділ був там.
  • Території, які не були досліджені (райони, до яких ніколи не були), повинні бути повністю чорними.
  • Слід змінити градієнт від кожного типу (наприклад, досліджений до раніше дослідженого). Див. Малюнок нижче.

градієнти між областями видимості

Просто грубі деталі: як я це зробив?

Відповіді:


11

Ви повинні додати більше інформації про те, як ви реалізуєте гру, але ось кілька пропозицій:

  • Зберігайте растрову карту всієї карти, кожного разу, коли досліджується нова область, просто перегортайте відповідні біти, коли вони стають видимими. Ви можете зробити те ж саме для виявленої області.
  • Ворожі одиниці витягуються лише в тому випадку, якщо вони знаходяться у виявленій області. Вам потрібно буде зберегти "останній раз" стан для будівель в районі FOW.
  • Вам не потрібно оновлювати видимість кожного кадру - залежно від максимальної швидкості одиниці, 5 або 10 кадрів в секунду повинно бути цілком достатньо.
  • Припустимо, що ви використовуєте квадратну плитку, вам знадобляться лише 4 маски для отримання необхідних результатів: одна для «твердої» (затемненої) плитки, один «лікоть» і один «кутовий» градієнт, а також один «прямий край» градієнт. Усі інші з них можна отримати за допомогою обертів та різних прозорих тканин.

Сподіваюся, що це допомагає.


Також використовуйте просторовий індекс для зберігання своїх ігрових об’єктів, щоб ви могли швидко запитати, які об’єкти видно гравцеві.
Кай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.