Допустим, вы создаёте игру с волшебными зельями. Зелья имеют разные эффекты: они могут лечить игроков или наносить им урон. Нам нужно объявить и инициализировать некоторые константы и переменные для хранения здоровья игрока, а также количества урона или исцеления в результате применения зелья.
Но какие из них должны быть константами, а какие — переменными?
var PlayerHealth: float = 100.0
PotionDamageAmount: float = 20.0
PotionHealAmount: float = 10.0
Переменные и константы, которые вы здесь изменяете, не влияют на здоровье вашего персонажа Fortnite — об этом вы узнаете на следующем уроке!
Здоровье игрока будет меняться во время игры в зависимости от того, какие зелья он использует. Когда речь идёт об изменении, нужно использовать переменную.
С другой стороны, нет особого смысла изменять количество урона или исцеления от зелий во время игры, поэтому эти значения должны быть объявлены как константы.
-
Если вы напишете код для изменения переменной
PlayerHealth, то не сможете проверить его, пока не выведете что-нибудь в журнал. Чтобы решить эту задачу, объявите и инициализируйте строковую константу и строковую переменную ниже. Не забудьте добавить пробел между концом текста и последним символом".PlayerStatusText: string = "Текущее здоровье игрока " var EffectOnPlayerText: string = "урон " -
Теперь всё готово, чтобы изменить здоровье игрока. Чтобы изменить значение переменной, нужно использовать ключевое слово
setв начале выражения.PotionDamageAmountследует вычесть изPlayerHealth, поэтому используйте оператор-.set PlayerHealth = PlayerHealth - PotionDamageAmount -
Изменение
PlayerHealthнужно проверить! Для этого вызовите функциюPrint(), как показано ниже.Print("Игрок получил {EffectOnPlayerText + ToString(PotionDamageAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")Может показаться, что мы пытаемся выполнить арифметические действия со строками, но на самом деле строки просто соединяются с помощью оператора
+. Эта операция называется объединением. ФункцияToString()приводит переменную и константу типаfloatк типуstring, чтобы их можно было использовать в функцииPrint(). -
Запустите этот код. На экране должны появится две новые строки:
Игрок получил урон 20.0Текущее здоровье игрока 80.00
Теперь самостоятельно попробуйте сделать то же самое для PotionHealAmount.
- Измените
PlayerHealth, используя нужное ключевое слово и оператор. - Также нужно будет изменить переменную
EffectOnPlayerText, чтобы она имела смысл при выводе в журнал. -
Наконец, нужно будет вывести в журнал информацию о том, как это повлияло на здоровье игрока, и его текущее здоровье. Сначала попробуйте сделать это самостоятельно, а если вам потребуется помощь, обратитесь к коду ниже.
set PlayerHealth = PlayerHealth + PotionHealAmount set EffectOnPlayerText = "исцеление " Print("Игрок получил {EffectOnPlayerText + ToString(PotionHealAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")
Полный сценарий
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
hello_world_device := class(creative_device):
# Выполняется при запуске устройства в работающей игре
OnBegin<override>()<suspends> : void =
PotionDamageAmount : float = 20.0
PotionHealAmount : float = 10.0
var PlayerHealth : float = 100.0
PlayerStatusText : string = "Текущее здоровье игрока "
var EffectOnPlayerText: string = "урон "
set PlayerHealth = PlayerHealth - PotionDamageAmount
Print("Игрок получил {EffectOnPlayerText + ToString(PotionDamageAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")
set PlayerHealth = PlayerHealth + PotionHealAmount
set EffectOnPlayerText = "исцеление "
Print("Игрок получил {EffectOnPlayerText + ToString(PotionHealAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")