플레이어가 착지하면 사라지는 플랫폼은 장애물 코스 같은 플랫폼 게임 모드에서 빠지지 않는 요소입니다. 이런 플랫폼에서 플레이어는 떨어지지 않기 위해 빠르게 행동하고 계획해야 합니다.
이 튜토리얼에서는 포트나이트 언리얼 에디터(Unreal Editor for Fortnite, UEFN) 의 Verse 를 사용하여 플레이어와 접촉할 때 사라졌다가 랜덤 시간(초)이 지난 뒤에 다시 나타나는 플랫폼을 제작하는 방법을 알아봅니다. 이 예시에서는 플레이어가 떨어지지 않고 플랫폼 사이로 점프해야 하는 영역을 만드는 방법을 보여줍니다. 완성된 스크립트가 이 가이드 끝에 참고용으로 포함되어 있습니다.

사용하는 Verse 언어 기능
사용된 Verse API
-
Sleep():Sleep()API는 플랫폼이 사라졌다가 랜덤한 시간 뒤에 다시 나올 때까지 딜레이를 삽입하는 데 사용됩니다. -
GetRandomFloat():GetRandomFloat()API는 플랫폼이 다시 나타나는 데 걸리는 랜덤한 시간을 계산하는 데 사용됩니다. -
편집 가능 프로퍼티: 4개의 프로퍼티가 UEFN에 노출됩니다. 플랫폼이 사라졌다가 다시 나타나는 딜레이를 제어하기 위한 플로트 3개와 플랫폼 레퍼런스 자체입니다.
-
장치 이벤트: 플레이어가 플랫폼에 착지할 시점을 파악하기 위해 트리거 장치의
TriggeredEvent를 사용합니다.
레벨 설정하기
이 튜토리얼에서는 Verse 스타터 템플릿을 시작점으로 활용합니다. 시작하려면 먼저 Verse 장치(Verse Device) 기능 예시에서 새 프로젝트를 생성합니다.
이 예시에서는 다음과 같은 사물과 장치를 사용합니다.
-
1 x 플레이어 생성 패드 장치: 이 장치는 플레이어가 게임 시작 시에 생성될 위치를 정의합니다.
-
4 x 포크리 사물(Creative Prop): 포크리 사물에는 플랫폼의 비저빌리티와 콜리전을 토글하기 위한
Hide(),Show()등 Verse로 호출할 수 있는 몇 가지 행동이 있습니다. 이 튜토리얼에서는 플레이어가 상호작용할 수 있는 플랫폼으로 Airborne Hoverplatform A 를 사용하지만, 경험의 필요에 맞게 자유롭게 변경해도 됩니다. -
4 x 트리거 장치: 플레이어가 각 플랫폼에 착지하는 시점을 알기 위해 이러한 트리거를 사용합니다.
레벨을 구성하려면 다음 단계를 따릅니다.
-
씬에 Airborne Hoverplatform A 를 하나 추가합니다. 바닥 위에 배치하여 플레이어가 사라지는 플랫폼에서 제때 점프하지 않으면 떨어지게 합니다. 아웃라이너(Outliner) 에서 플랫폼을 RecyclePlatform 으로 명명합니다.
-
씬에 트리거 장치를 하나 추가하고 RecyclePlatform 의 자손으로 설정합니다. 플랫폼 상단에 배치하고 전체 플랫폼에 맞게 크기를 조절합니다. 아웃라이너 에서 게임 내 표시(Visible In Game) 를 False 로, 트리거 가능 횟수(Times Can Trigger) 를 1 로 설정합니다.
-
플레이어 생성 패드 장치를 플랫폼 위에 놓습니다. 게임이 시작되면 플레이어가 여기에 생성됩니다. 아웃라이너 에서 게임 내 표시 옵션을 비활성화하여 플레이어가 생성된 뒤에 생성 패드에 서지 못하게 합니다. 완성된 구성은 다음과 같습니다.
장치 생성하기
이 예시에서는 Verse로 제작된 장치를 사용하여 플레이어가 착지할 때 사라졌다가 랜덤 시간(초) 뒤에 다시 나타나는 플랫폼을 만들기 위한 행동을 정의합니다. 다음 단계를 따라 Verse를 사용하여 이 장치를 생성합니다.
-
disappear_on_touch_platform 이라는 이름의 새 Verse 장치를 Verse 익스플로러(Verse Explorer)를 사용하여 생성합니다. Verse에서 새 장치를 생성하는 방법에 대한 자세한 내용은 Verse를 사용하여 나만의 장치 만들기를 참고하세요.
-
disappear_on_touch_platform 장치를 콘텐츠 브라우저(Content Browser) 에서 레벨로 드래그합니다.
UEFN에서 장치 프로퍼티 편집하기
이 섹션은 4개의 장치 프로퍼티를 UEFN에 노출하여 에디터에서 커스터마이징하는 방법을 보여줍니다.
-
레벨에 배치한 포크리 오브젝트의 장치 레퍼런스
-
DisappearDelay로 명명된float상수. 플레이어가 플랫폼과 접촉한 뒤 플랫폼을 숨길 때까지 대기하는 시간을 저장하는 용도 -
DelayMin및DelayMax로 명명된 2개의float상수. 플랫폼을 다시 나타나게 만들 때까지 대기하는 최소 시간과 최대 시간을 저장하는 용도 이 두 값은 랜덤 숫자를 구할 때 허용되는 범위를 정의합니다.
다음 단계를 따라서 이전 섹션에서 생성한 disappear_on_touch_platform 장치로부터 프로퍼티를 노출합니다.
-
Verse 익스플로러를 열고 disappear_on_touch_platform.verse 를 더블클릭하여 Visual Studio Code 에서 스크립트를 엽니다.
-
disappear_on_touch_platform클래스 정의에 다음 필드를 추가합니다.-
DisappearDelay로 명명된 편집 가능한float. 플레이어가 플랫폼과 접촉한 뒤 플랫폼을 숨길 때까지 대기하는 시간입니다. 이 값을1.0, 즉 1초로 초기화합니다.# 플레이어가 플랫폼과 접촉한 뒤 플랫폼을 숨길 때까지 대기하는 시간입니다. @editable DisappearDelay:float = 1.0 -
DelayMin으로 명명된 편집 가능한float. 플랫폼을 다시 나타나게 만들 때까지 대기하는 최소 시간입니다. 이 값을3.0, 즉 3초로 초기화합니다.# 플랫폼을 다시 나타나게 만들 때까지 대기하는 최소 시간입니다. @editable DelayMin:float = 3.0 -
DelayMax로 명명된 편집 가능한float. 플랫폼을 다시 나타나게 만들 때까지 대기하는 최대 시간입니다. 이 값을4.0, 즉 4초로 초기화합니다.# 플랫폼을 다시 나타나게 만들 때까지 대기하는 최대 시간입니다. @editable DelayMax:float = 4.0 -
DisappearingPlatform으로 명명된 편집 가능한creative_prop. 주기적으로 사라졌다가 나타나는 레벨 내 플랫폼입니다. 코드에 아직 레벨 내 이 오브젝트에 대한 레퍼런스가 없으므로, 빈 아키타입creative_prop{}으로 인스턴스화합니다. 나중에 떠다니는 플랫폼에 이 레퍼런스를 할당합니다.# 레벨 내 플랫폼에 대한 레퍼런스입니다. @editable DisappearingPlatform:creative_prop = creative_prop{} -
PlatformTrigger로 명명된 편집 가능한trigger_device입니다. 플레이어가 플랫폼에 착지하는 시점을 알기 위해 이 장치의TriggeredEvent이벤트가 필요합니다.# 플레이어가 플랫폼에 착지할 때 진입하는 구역입니다. @editable PlatformTrigger:trigger_device = trigger_device{}
-
-
disappear_on_touch_platform클래스 필드는 다음과 같을 것입니다.# Verse로 작성하여 레벨에 배치할 수 있는 포크리 장치 disappear_on_touch_platform := class(creative_device): # 플레이어가 플랫폼과 접촉한 뒤 플랫폼을 숨길 때까지 대기하는 시간입니다. @editable DisappearDelay:float = 1.0 # 플랫폼을 다시 나타나게 만들 때까지 대기하는 최소 시간입니다. @editable DelayMin:float = 3.0 # 플랫폼을 다시 나타나게 만들 때까지 대기하는 최대 시간입니다. @editable DelayMax:float = 4.0 # 레벨 내 플랫폼에 대한 레퍼런스입니다. @editable DisappearingPlatform:creative_prop = creative_prop{} # 플레이어가 플랫폼에 착지할 때 진입하는 구역입니다. @editable PlatformTrigger:trigger_device = trigger_device{}@editable어트리뷰트를 사용하여 스크립트에서ToggleDelay와 같은 값을 에디터에 노출하면 유용합니다. 이렇게 하면 매번 Verse 코드를 빌드할 필요 없이 UEFN에서 해당 값을 커스터마이징할 수 있으므로, 빠르게 반복작업하여 게임플레이 경험에 맞는 값을 찾을 수 있습니다. -
Visual Studio Code에서 스크립트를 저장합니다.
-
UEFN 툴바에서 Verse > Verse 코드 빌드(Build Verse Code) 를 클릭하여 레벨의 disappear_on_touch_platform 장치를 업데이트합니다.
-
UEFN의 아웃라이너 패널에서 disappear_on_touch_platform 장치를 선택하여 디테일 패널을 엽니다.
-
디테일 패널의 Disappear on Touch Platform 에서 오브젝트 선택 툴 을 클릭하고 뷰포트의 플랫폼 장치를 선택하여 플랫폼 을 레벨에 추가한 포크리 사물인 RecyclePlatform 으로 설정합니다.

-
이제 Verse 장치에서 사물을 레퍼런스했으니 두 장치를 선택하고 레벨에서 여러 번 복제하여 플레이어가 점프할 수 있는 플랫폼을 연이어 생성합니다. 새로 생성하는 각 Verse 장치는 자체 플랫폼을 레퍼런스해야 합니다.
플랫폼 숨기기 및 표시하기
레벨과 장치를 구성했으니 플레이어가 착지할 때 플랫폼을 표시하고 숨기는 기능을 추가할 수 있습니다. disappear_on_touch_platform 클래스에 이 행동을 추가하려면 다음 단계를 따릅니다.
-
creative_prop클래스에는 비저빌리티를 토글하는 두 가지 메서드인Hide()와Show()가 있습니다. 다시 Visual Studio Code 로 돌아가OnBegin()의DisappearingPlatform에서Hide()를 호출한 다음Show()를 호출합니다.# 실행 중인 게임에서 장치가 시작되면 실행됩니다. OnBegin<override>()<suspends>:void= # 플랫폼을 안 보이게 만듭니다. DisappearingPlatform.Hide() # 플랫폼을 보이게 만듭니다. DisappearingPlatform.Show()이 코드를 실행하는 경우
Hide()와Show()가 순식간에 이어서 호출되므로 플랫폼이 사라졌다가 다시 나타나는 모습은 볼 수 없습니다. -
플랫폼의 표시/숨기기 상태를 더 오래 유지하려면
Hide()또는Show()를 호출할 때Sleep()을 사용하여 딜레이를 추가하면 됩니다.Sleep()함수는 루틴의 실행을 정지합니다.float실행인자를 이 함수에 전달하여 실행을 정지할 시간(단위: 초)을 지정할 수 있습니다.Hide()및Show()를 호출하기 전에 매번Sleep()을 호출하여 앞서 정의한DisappearDelay를 전달합니다.# 실행 중인 게임에서 장치가 시작되면 실행됩니다. OnBegin<override>()<suspends>:void= # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 안 보이게 만듭니다. DisappearingPlatform.Hide() # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 보이게 만듭니다. DisappearingPlatform.Show()이제 이 코드를 실행하면 플랫폼이
DisappearDelay에서 정의된 시간인 1초 동안 숨겨졌다가 나머지 게임 시간 동안 표시됩니다.Sleep()함수는 비동기화 컨텍스트에서만 호출 가능합니다.OnBegin()메서드에는suspends지정자가 있어 이미 비동기화 컨텍스트이므로 추가 작업을 할 필요가 없습니다.suspends지정자에 대한 자세한 내용은 지정자와 어트리뷰트를 참고하세요. -
플랫폼이 다시 나타나기까지 걸리는 시간을 다양하게 만들면 게임이 더 재미있어집니다.
Sleep()에 매번 같은 값을 제공하는 대신GetRandomFloat()함수를 사용하고 그 값을Sleep()에 전달하면 랜덤한 시간을 구할 수 있습니다.-
파일 상단에
using { /Verse.org/Random }을 추가하여GetRandomFloat()함수를 사용합니다.using { /Fortnite.com/Devices } using { /Verse.org/Random } using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/Diagnostics } # Verse 장치를 만드는 방법은 https://dev.epicgames.com/documentation/ko-kr/uefn/create-your-own-device-in-verse를 참고하세요. # Verse로 작성하여 레벨에 배치할 수 있는 포크리 장치 disappear_on_touch_platform := class(creative_device): -
플랫폼이 다시 나타날 때까지 대기하는 시간을 결정할 때
GetRandomFloat()함수를Sleep()의 실행인자로 사용하고 허용되는 초 범위를DelayMin및DelayMax로 설정합니다.# 실행 중인 게임에서 장치가 시작되면 실행됩니다. OnBegin<override>()<suspends>:void= # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 안 보이게 만듭니다. DisappearingPlatform.Hide() # DelayMin초~DelayMax초 동안 대기합니다. Sleep(GetRandomFloat(DelayMin, DelayMax)) # 플랫폼을 보이게 만듭니다. DisappearingPlatform.Show()
이제 플랫폼은 사라질 때까지
1.0초간 대기한 다음,3.0~4.0초 후 다시 나타납니다. -
플레이어의 플랫폼 착지 탐지하기
플레이어가 플랫폼에 착지하는 시점을 탐지하려면 trigger_device 클래스가 노출하는 TriggeredEvent 이벤트에 등록해야 합니다. 트리거는 플레이어가 그 위로 걸어갈 때만 TriggeredEvent 를 전송합니다. 트리거 가능 횟수 를 1로 설정했으므로 트리거의 상태를 리셋하고 TriggeredEvent 를 다시 보낼 수 있도록 하려면 트리거에서 Reset() 을 호출해야 합니다.
다음 단계를 따라 플레이어가 플랫폼과 접촉할 때 탐지하고, 이전 섹션에서 작성한 코드를 사용하여 그에 대한 반응으로 플랫폼이 숨었다가 다시 나타나게 합니다.
-
TriggeredEvent는 선택적player를 파라미터로,void를 반환 타입으로 하는 함수 시그니처를 필요로 합니다. 코드를 통해서도 트리거 장치를 활성화할 수 있으므로 이 함수에서 에이전트는 선택 사항이며, 따라서 플레이어가 활성화한 주체인지 확인해야 합니다.disappear_on_touch_platform클래스에 새 메서드OnPlayerTouch()를 추가합니다.OnPlayerTouch(ActivatingPlayer:?agent):void= -
OnPlayerTouch()의if표현식에서ActivatingPlayer옵션으로부터 플레이어를 얻으려고 시도합니다. 이 호출이 성공하면 코드가 아닌 플레이어가 트리거를 활성화했다는 것을 알게 됩니다.OnPlayerTouch(ActivatingPlayer:?agent):void= if: Player := ActivatingPlayer? then: Print("A player touched a platform!") -
OnBegin()에서OnPlayerTouch를 이벤트 핸들러로 사용하여PlatformTrigger.TriggeredEvent에 등록합니다. 이제 플레이어가 플랫폼에 착지할 때마다TriggeredEvent가 활성화되고OnPlayerTouch()가 실행됩니다.OnBegin<override>()<suspends>:void= # 플레이어가 플랫폼에 착지하는 시점을 알기 위해 # PlatformTrigger의 TriggeredEvent에 등록합니다. PlatformTrigger.TriggeredEvent.Subscribe(OnPlayerTouch) -
플랫폼을 숨기면 플레이어는 플랫폼을 바로 통과하므로 트리거를 활성화할 수 없습니다. 이를 처리하려면
OnBegin()에서Hide()와Show()뒤에 각각PlatformTrigger.Disable()및Enable()에 대한 호출을 추가합니다. 이제 플랫폼이 숨겨져 있는 동안 트리거와 상호작용할 수 없습니다.OnBegin<override>()<suspends>:void= # 플레이어가 플랫폼에 착지하는 시점을 알기 위해 # PlatformTrigger의 TriggeredEvent에 등록합니다. PlatformTrigger.TriggeredEvent.Subscribe(OnPlayerTouch) # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 숨기고 트리거를 비활성화합니다. DisappearingPlatform.Hide() PlatformTrigger.Disable() # DelayMin초~DelayMax초 동안 대기합니다. Sleep(GetRandomFloat(DelayMin, DelayMax)) # 플랫폼을 표시하고 트리거를 활성화합니다. DisappearingPlatform.Show() PlatformTrigger.Enable()
플레이어가 플랫폼에 착지할 때 플랫폼을 숨겨야 하지만, 플랫폼을 숨기고 표시하기 위한 코드를 OnPlayerTouch() 메서드에 직접 추가할 수는 없습니다. Sleep() 함수는 비동기화 컨텍스트에서만 호출 가능하며, suspends 지정자를 OnPlayerTouch() 에 추가할 수 없습니다. TriggeredEvent 는 비동기화 함수를 이벤트 핸들러로 허용하지 않기 때문입니다. 대신 spawn을 사용하여 OnPlayerTouch() 에서 비동기화 함수를 호출할 수 있습니다. 비동기화 함수를 추가하려면 다음 단계를 따릅니다.
-
새로운 메서드
RecyclePlatform()을disappear_on_touch_platform클래스 정의에 추가합니다.<suspends>모디파이어를 추가하여 이 코드가 비동기적으로 실행되도록 하고, 플랫폼 및 트리거를 숨기고 표시하기 위한 코드를OnBegin에서RecyclePlatform()코드 블록으로 이동합니다.# 플랫폼을 숨기고 PlatformTrigger를 리셋합니다. 그런 다음 랜덤 시간 동안 대기하고 플랫폼 표시를 다시 활성화합니다. RecyclePlatform()<suspends> : void = # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 숨기고 트리거를 비활성화합니다. DisappearingPlatform.Hide() PlatformTrigger.Disable() # DelayMin초~DelayMax초 동안 대기합니다. Sleep(GetRandomFloat(DelayMin, DelayMax)) # 플랫폼을 표시하고 트리거를 활성화합니다. DisappearingPlatform.Show() PlatformTrigger.Enable() -
OnPlayerTouch()의RecyclePlatform()에서spawn{}을 호출하여 코드를 비동기적으로 실행합니다. 완성된RecyclePlatform()함수는 다음과 같습니다.# 플레이어가 플랫폼에 착지할 때 실행됩니다. RecyclePlatform()을 호출하여 플랫폼을 숨기고 # 트리거 상태를 리셋합니다. OnPlayerTouch(ActivatingPlayer:?agent):void= if: Player := ActivatingPlayer? then: Print("A player touched a platform!") spawn{RecyclePlatform()}이 코드를 실행하면 플레이어가 처음 플랫폼에 착지할 때 플랫폼이 사라졌다가 다시 나타날 것입니다.
비동기화 는 코드가 완료되기까지 시간이 걸릴 수 있음을 뜻합니다. 이 경우
Sleep()호출 때문에 플랫폼을 다시 표시하기까지 몇 초가 걸립니다. 비동기화 함수를 활용하면 비동기화 함수를 호출하는 코드 실행을 차단하지 않고도 연산을 수행할 수 있습니다. 비동기화 컨텍스트 및spawn표현식에 대한 자세한 내용은 동시성을 참고하세요. -
현재
TriggeredEvent는 플레이어가 플랫폼에 처음 착지할 때만 디스패치됩니다. 이벤트를 다시 트리거할 수 있게 만들려면 트리거 리셋을 호출하면 됩니다.RecyclePlatform()의PlatformTrigger에서Enable()을 호출한 후Reset()을 호출합니다.# 플랫폼을 숨기고 PlatformTrigger를 리셋합니다. 그런 다음 랜덤 시간 동안 대기하고 플랫폼 표시를 다시 활성화합니다. RecyclePlatform()<suspends> : void = # DisappearDelay초 동안 대기합니다. Sleep(DisappearDelay) # 플랫폼을 숨기고 트리거를 비활성화합니다. DisappearingPlatform.Hide() PlatformTrigger.Disable() # DelayMin초~DelayMax초 동안 대기합니다. Sleep(GetRandomFloat(DelayMin, DelayMax)) # 플랫폼을 표시하고 트리거를 활성화합니다. DisappearingPlatform.Show() PlatformTrigger.Enable() # PlatformTrigger가 트리거할 수 있는 횟수를 리셋합니다. PlatformTrigger.Reset() -
스크립트를 저장하고 Verse 를 클릭한 다음 Verse 코드 빌드 를 클릭해 코드를 컴파일합니다.
-
UEFN 툴바에서 세션 시작(Launch Session) 을 클릭하여 레벨을 플레이테스트합니다.
-
이제 레벨을 플레이테스트하면 각 플랫폼에 착지할 때 플랫폼이 사라졌다가 랜덤 시간(초)이 지난 뒤 다시 나타날 것입니다.

전체 스크립트
다음 코드는 플레이어가 착지할 때 사라졌다가 랜덤 시간(초)이 지난 뒤 다시 나타나는 플랫폼을 만드는 스크립트의 완성본입니다.
using { /Fortnite.com/Devices }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Verse 장치를 만드는 방법은 https://dev.epicgames.com/documentation/ko-kr/uefn/create-your-own-device-in-verse를 참고하세요.
# Verse로 작성하여 레벨에 배치할 수 있는 포크리 장치
disappear_on_touch_platform := class(creative_device):
# 플레이어가 플랫폼과 접촉한 뒤 플랫폼을 숨길 때까지 대기하는 시간입니다.
@editable
DisappearDelay:float = 1.0
# 플랫폼을 다시 나타나게 만들 때까지 대기하는 최소 시간입니다.
@editable
DelayMin:float = 3.0
# 플랫폼을 다시 나타나게 만들 때까지 대기하는 최대 시간입니다.
@editable
DelayMax:float = 4.0
# 레벨 내 플랫폼에 대한 레퍼런스입니다.
@editable
DisappearingPlatform:creative_prop = creative_prop{}
# 플레이어가 플랫폼에 착지할 때 진입하는 구역입니다.
@editable
PlatformTrigger:trigger_device = trigger_device{}
# 실행 중인 게임에서 장치가 시작되면 실행됩니다.
OnBegin<override>()<suspends>:void=
# 플레이어가 플랫폼에 착지하는 시점을 알기 위해
# PlatformTrigger의 TriggeredEvent에 등록합니다.
PlatformTrigger.TriggeredEvent.Subscribe(OnPlayerTouch)
# 플레이어가 플랫폼에 착지할 때 실행됩니다. RecyclePlatform()을 호출하여 플랫폼을 숨기고
# 트리거 상태를 리셋합니다.
OnPlayerTouch(ActivatingPlayer:?agent):void=
if:
Player := ActivatingPlayer?
then:
Print("A player touched a platform!")
spawn{RecyclePlatform()}
# 플랫폼을 숨기고 PlatformTrigger를 리셋합니다. 그런 다음 랜덤 시간 동안 대기하고 플랫폼 표시를 다시 활성화합니다.
RecyclePlatform()<suspends> : void =
# DisappearDelay초 동안 대기합니다.
Sleep(DisappearDelay)
# 플랫폼을 숨기고 트리거를 비활성화합니다.
DisappearingPlatform.Hide()
PlatformTrigger.Disable()
# DelayMin초~DelayMax초 동안 대기합니다.
Sleep(GetRandomFloat(DelayMin, DelayMax))
# 플랫폼을 표시하고 트리거를 활성화합니다.
DisappearingPlatform.Show()
PlatformTrigger.Enable()
# PlatformTrigger가 트리거할 수 있는 횟수를 리셋합니다.
PlatformTrigger.Reset()
직접 해보기
이 튜토리얼에서는 Verse를 사용하여 플랫폼이 플레이어가 착지할 때 사라졌다가 랜덤 시간(초) 뒤에 다시 나타나도록 하는 장치를 만드는 방법을 배웠습니다.
알아본 내용을 바탕으로 다음과 같은 작업을 시도해 보세요.
-
플랫폼의 크기와 위치를 조정하여 재미있는 도전 과제를 만드세요.
-
이 예시에서 플레이어는 아무런 점수도 얻지 않으며 떨어질 때 아무 일도 일어나지 않습니다. 점수 산정 기준과 패배 조건을 어떻게 구현할지 생각해 보세요.