방향 정보를 처리하기 위해 enum
타입으로 방향(상하좌우)을 정의했습니다.
Direction
변수를 추가하여 현재의 방향 정보를 저장합니다.
특정 키 입력 시(위, 아래, 왼쪽, 오른쪽), 해당 키에 맞는 방향 값을 Direction
변수에 저장합니다.
분석
enum
을 사용하는 이유는 명확한 방향 정보 처리를 위함입니다. enum
은 상하좌우처럼 고정된 값들을 명확히 구분하여 실수 없는 데이터 처리를 보장합니다.
방향 값 저장은 후속 작업(플립북 업데이트 등)에 필요한 기본 데이터를 제공합니다.
KeyboardPressed
라는 불리언 변수를 추가하여 키 입력 여부를 저장합니다.
Event Tick
노드를 사용하여 매 프레임마다 키가 눌려 있는지 확인하고 True
또는 False
값을 KeyboardPressed
에 할당합니다.
분석
키가 눌려있는지 확인하는 작업은 애니메이션 전환의 조건이 됩니다.
Event Tick
은 프레임 단위로 호출되어 실시간으로 입력 상태를 확인합니다.
Update Animation
함수는 입력된 데이터를 기반으로 애니메이션 상태를 변경하는 역할을 합니다.
KeyboardPressed
값에 따라 다음과 같이 동작합니다:
True
일 경우: 방향값에 따라 _move
애니메이션 설정.False
일 경우: _idle
애니메이션 설정.추가로, Switch on Direction
노드를 사용해 방향에 따른 세부 동작을 분리했습니다.
방향값이 Up
, Down
, Left
, Right
일 때 각각에 맞는 플립북을 설정합니다.
분석
Update Animation
함수는 애니메이션 전환 로직을 캡슐화하여 코드의 재사용성을 높이고 구조를 간단히 만듭니다.
Switch on Direction
은 방향별로 플립북 설정을 깔끔하게 분리하여 가독성을 향상시킵니다.
키를 눌렀다 떼었을 때, 애니메이션이 멈추지 않는 버그를 해결하기 위해 Update Animation
함수 호출을 추가했습니다.
KeyboardPressed
가 False
일 때도 Update Animation
을 호출하여 _idle
상태로 전환합니다.
분석
키 입력 해제 시에도 애니메이션 상태를 확실히 초기화하여 방향을 유지하면서도 _idle
상태로 전환합니다.
이는 사용자 입력과 애니메이션 상태 간의 동기화를 보장합니다.
Update Animation
함수의 역할을 명확히 분리하여 코드 가독성과 유지보수성을 높였습니다.Event Tick
의 잦은 호출로 인한 성능 문제를 방지하려면 이후 최적화를 고려해야 합니다.