Найти в Дзене
Игровой движок Godot engine

№125. Практика. Применяем кривую для расчета прибыли в зависимости от уровня.

В этой заметке рассмотрим практическое применение кривой в проекте.
Если вы пропустили вводную часть по кривым — вам сюда. Задача простая : При повышении уровня загрузки здания, прибыль должна падать.
В начале прибыль большая, затем все меньше и меньше. При полной загрузке здание не приносит ничего. Оно перегружено :) Для этого и будем использовать кривую.
Будем использовать нелинейную зависимость, чтобы оправдать применение кривой в принципе. Создаем ресурс. Если провести линии то можно увидеть как меняются значения по оси Y: БОльшие значение будут в самом начале. 0.96-0.92-0.88-0.82-0.75-0.65-0.53-0.39-0.21-0 Для сравнения — Линейная кривая: 0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1-0 Создаем простенькую сцену.
Здание которое будет менять свой уровень, и пару леиблов для вывода текущего уровня и прибыли. Уровней здания будет 10. В 1 уровне добыча = 1, в 10 = 0.
Повышать уровень здания , для простоты будем просто по клику. Код. Для начала подгрузим кривую, и создадим три переменные. Это буд

В этой заметке рассмотрим практическое применение кривой в проекте.
Если вы пропустили вводную часть по кривым —
вам сюда.

Задача простая : При повышении уровня загрузки здания, прибыль должна падать.
В начале прибыль большая, затем все меньше и меньше. При полной загрузке здание не приносит ничего. Оно перегружено :)

Для этого и будем использовать кривую.
Будем использовать нелинейную зависимость, чтобы оправдать применение кривой в принципе.

Создаем ресурс.

Если провести линии то можно увидеть как меняются значения по оси Y:

-2

БОльшие значение будут в самом начале.

0.96-0.92-0.88-0.82-0.75-0.65-0.53-0.39-0.21-0

Для сравнения — Линейная кривая:

0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.1-0

Создаем простенькую сцену.
Здание которое будет менять свой уровень, и пару леиблов для вывода текущего уровня и прибыли.

Уровней здания будет 10. В 1 уровне добыча = 1, в 10 = 0.
Повышать уровень здания , для простоты будем просто по клику.

-3

Код.

Для начала подгрузим кривую, и создадим три переменные. Это будет переменная текущего уровня, прибыли и текущего значения кривой.

-4

Прописываем логику для клика.
Повышаем уровень , и получаем значение с кривой по формуле «уровень/10», так как у нас кривая в диапазоне 0-1 (вы можете это изменить в настройках кривой). И выводим уровень в первый леибл.

-5

Ну и в процессе просто прибавляем к прибыли наше значение с кривой.
Я беру чистые значения из кривой, но тут конечно же можно использовать это значение как коэффицент.
Выводим это значение во второй лейбл.

-6

Ну и для примера я приложу гифку где генерируется прибыль по нашей кривой , и обычной линейной:

-7

Заметно как в первом случае в начале прибыль генерируется быстрее.

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #dgscript #игровой движок #программирование #уроки