마법의 물약이 등장하는 게임을 만든다고 가정해 보겠습니다. 물약의 효과는 다양해서, 플레이어를 치유하는 물약도 있고 오히려 해를 끼치는 물약도 있습니다. 이 경우 몇 가지 상수와 변수를 선언하고 초기화하여 플레이어의 체력과 물약이 입히는 피해 또는 치유량을 저장해야 합니다.
그렇다면 무엇이 상수가 되어야 하고, 무엇이 변수가 되어야 할까요?
var PlayerHealth: float = 100.0
PotionDamageAmount: float = 20.0
PotionHealAmount: float = 10.0
여기서 변경하는 변수와 상수는 포트나이트 캐릭터의 체력에는 영향을 주지 않지만, 이후 수업에서 체력에 영향을 주는 방법을 배울 예정입니다!
플레이어의 체력은 게임 중에 사용하는 물약에 따라 변경됩니다. 변경 이라는 말이 나오면 바로 변수(variable) 를 떠올리세요.
반면 물약의 치유량과 피해를 게임 중에 변경하는 것은 바람직하지 않습니다. 따라서 이러한 수치는 상수(constant) 로 선언해야 합니다.
-
지금
PlayerHealth
변수를 변경하기 위한 코드를 작성해도, 로그에 무언가를 출력하지 않는 한 코드가 제대로 작동하는지 알 수 없습니다. 아래의 string 상수와 string 변수를 선언하고 초기화하면 도움이 됩니다. 텍스트 끝과 마지막"
사이에 공백을 한 칸 추가하는 것을 잊지 마세요.PlayerStatusText: string = "Player health now " var EffectOnPlayerText: string = "damaged "
-
이제 플레이어의 체력을 변경할 준비가 되었습니다. 변수의 값을 변경하려면 표현식 시작 부분에
set
키워드를 사용해야 합니다.PotionDamageAmount
를PlayerHealth
에서 빼야 하니-
연산자를 사용하세요.set PlayerHealth = PlayerHealth - PotionDamageAmount
-
PlayerHealth
가 변경되었으면, 변경을 확인하기 위한 증거가 필요합니다! 아래와 같은Print()
를 호출하면 됩니다.Print("The Player was {EffectOnPlayerText + ToString(PotionDamageAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")
string으로 수학을 하는 것처럼 보이겠지만 실제로는
+
연산자로 string을 결합 하는 것입니다. 이러한 작업을 연결(concatenation) 이라고 합니다.ToString()
함수는Print()
에서 사용할 수 있도록float
변수 및 상수의string
버전을 생성합니다. -
이 코드를 지금 실행하면 다음 두 줄이 새로 출력됩니다.
The Player was damaged 20.0
Player health now 80.00
이제 PotionHealAmount
를 넣어서 직접 작성해 보세요.
- 올바른 키워드(keyword) 와 연산자(operator) 를 사용하여
PlayerHealth
를 변경합니다. - 또한 올바른 결과가 출력되도록
EffectOnPlayerText
변수도 변경해야 합니다. -
마지막으로 플레이어의 체력이 어떻게 영향을 받았는지와 현재 체력을 출력해야 합니다. 직접 작업해 보시되, 도움이 필요하면 아래 코드를 참고하세요.
set PlayerHealth = PlayerHealth + PotionHealAmount set EffectOnPlayerText = "healed " Print("The Player was {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 = "Player health now "
var EffectOnPlayerText: string = "damaged "
set PlayerHealth = PlayerHealth - PotionDamageAmount
Print("The Player was {EffectOnPlayerText + ToString(PotionDamageAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")
set PlayerHealth = PlayerHealth + PotionHealAmount
set EffectOnPlayerText = "healed "
Print("The Player was {EffectOnPlayerText + ToString(PotionHealAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")