1. 방향키 입력 및 정보 저장

  • 방향 정보를 처리하기 위해 enum 타입으로 방향(상하좌우)을 정의했습니다.

  • Direction 변수를 추가하여 현재의 방향 정보를 저장합니다.

  • 특정 키 입력 시(위, 아래, 왼쪽, 오른쪽), 해당 키에 맞는 방향 값을 Direction 변수에 저장합니다.

    분석

  • enum을 사용하는 이유는 명확한 방향 정보 처리를 위함입니다. enum은 상하좌우처럼 고정된 값들을 명확히 구분하여 실수 없는 데이터 처리를 보장합니다.

  • 방향 값 저장은 후속 작업(플립북 업데이트 등)에 필요한 기본 데이터를 제공합니다.


2. 키 입력 여부 저장

  • KeyboardPressed라는 불리언 변수를 추가하여 키 입력 여부를 저장합니다.

  • Event Tick 노드를 사용하여 매 프레임마다 키가 눌려 있는지 확인하고 True 또는 False 값을 KeyboardPressed에 할당합니다.

    분석

  • 키가 눌려있는지 확인하는 작업은 애니메이션 전환의 조건이 됩니다.

  • Event Tick은 프레임 단위로 호출되어 실시간으로 입력 상태를 확인합니다.


3. 애니메이션 갱신 - Update Animation 함수

  • Update Animation 함수는 입력된 데이터를 기반으로 애니메이션 상태를 변경하는 역할을 합니다.

  • KeyboardPressed 값에 따라 다음과 같이 동작합니다:

    • True일 경우: 방향값에 따라 _move 애니메이션 설정.
    • False일 경우: _idle 애니메이션 설정.
  • 추가로, Switch on Direction 노드를 사용해 방향에 따른 세부 동작을 분리했습니다.

  • 방향값이 Up, Down, Left, Right일 때 각각에 맞는 플립북을 설정합니다.

    분석

  • Update Animation 함수는 애니메이션 전환 로직을 캡슐화하여 코드의 재사용성을 높이고 구조를 간단히 만듭니다.

  • Switch on Direction은 방향별로 플립북 설정을 깔끔하게 분리하여 가독성을 향상시킵니다.


4. 버그 해결 - 키 입력 해제 시 Idle로 전환

  • 키를 눌렀다 떼었을 때, 애니메이션이 멈추지 않는 버그를 해결하기 위해 Update Animation 함수 호출을 추가했습니다.

  • KeyboardPressedFalse일 때도 Update Animation을 호출하여 _idle 상태로 전환합니다.

    분석

  • 키 입력 해제 시에도 애니메이션 상태를 확실히 초기화하여 방향을 유지하면서도 _idle 상태로 전환합니다.

  • 이는 사용자 입력과 애니메이션 상태 간의 동기화를 보장합니다.


5. 결과 및 최적화

  • 구현 결과, 방향키 입력에 따라 올바르게 애니메이션이 갱신되었습니다.
  • 구현 과정에서 Update Animation 함수의 역할을 명확히 분리하여 코드 가독성과 유지보수성을 높였습니다.
  • Event Tick의 잦은 호출로 인한 성능 문제를 방지하려면 이후 최적화를 고려해야 합니다.

예제

profile
李家네_공부방

0개의 댓글