Понедельник, 11 Ноября 2024, 01:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Максимальное значение хп
ShiepДата: Вторник, 11 Декабря 2018, 22:55 | Сообщение # 1
был не раз
Сейчас нет на сайте
Как установить макс. значение для ХП. А то создал аптечку и если у героя 75 хп,а она даёт 50, то у героя 125 хп когда полоска хп розчитана на 100.

BiGZeBr
AlexanderBekkerДата: Вторник, 11 Декабря 2018, 23:26 | Сообщение # 2
BekkerDev Studio
Сейчас нет на сайте
В Create:
Код
maxHealth = 100;

При подборе аптечки:
Код
health = min(health + 50, maxHealth);

В отрисовке полоски здоровья лучше использовать следующую формулу вместо передачи переменной health: health / maxHealth * 100.


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
CoreДата: Среда, 12 Декабря 2018, 01:00 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
можно так:
create
Код

hp = 100

step
Код

if hp > 100{
hp = 100
}

если помог то ставь плюс deal




Сообщение отредактировал Core - Среда, 12 Декабря 2018, 01:01
XDominatorДата: Среда, 06 Февраля 2019, 16:54 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Цитата Core ()
можно так:

Можно, вот только оптимизация спасибо тебе не скажет. В варианте выше - код выполнится один раз при наступлении события, а у тебя будет долбить каждый шаг. А если у тебя таких параметров 10? А если 100?


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
drcrackДата: Четверг, 07 Февраля 2019, 04:59 | Сообщение # 5
старожил
Сейчас нет на сайте
не ну в крайности впадать не надо, нашел что оптимизировать, 3 инструкции :D

Цитата
А если у тебя таких параметров 10? А если 100?

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

на самом деле код Core лучше чем код AlexanderBekker
просто потому что логика ограничения хп находится в одном месте, а не разбросана по файлам

Код
health = min(health + 50, maxHealth);

вот представь ты написал так во многих местах (аптечки всякие и другие способы восполнить хп)
а потом например добавил в игру временный отрицательный эффект который не дает отхилиться выше 90% от maxHealth
и что делать? менять maxHealth глобально? а если оригинальное значение нужно для других методов?
остается только править код везде

Core же просто добавляет умножение в одном месте и все

впрочем, его решение все равно кривое
правильный подход — делается 1 метод который изменяет хп и через него идет все работа, а он внутри уже реализует всю логику изменения здоровья в зависимости от текущей ситуации.


Сообщение отредактировал drcrack - Четверг, 07 Февраля 2019, 05:28
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг