피드로 돌아가기
Pygame Snake, Pt. 3
Dev.toDev.to
Frontend

Vector2와 Dictionary 매핑을 통한 입력 제어 로직 최적화

Pygame Snake, Pt. 3

David Newberry2026년 4월 21일5beginner

Context

단순 좌표 이동 방식의 그리드 시스템에서 사용자 입력을 통한 방향 제어 기능 구현 필요. 조건문 기반의 방향 처리 방식은 입력 키의 증가에 따라 코드 복잡도가 선형적으로 증가하는 한계 존재.

Technical Solution

  • Pygame Vector2 클래스를 활용한 위치 및 속도 데이터의 벡터화로 좌표 연산 효율성 확보
  • 캔버스 좌상단 기준의 Y축 증가 특성을 반영한 방향 벡터(0, 1) 정의
  • 좌표 덧셈 연산(dot += vel)을 통한 매 프레임 위치 업데이트 로직으로 단순화
  • 다중 if-else 조건문을 Dictionary 기반의 Key-Value 매핑 구조로 변경하여 시간 복잡도 최적화
  • Event Loop 내에서 'in' 키워드를 통한 유효 키 검증 및 동적 속도 할당 구조 설계

- 입력 값과 결과 값의 관계가 명확한 경우 조건문 대신 매핑 테이블(Map/Dictionary) 활용 검토 - 2차원 이상의 좌표계 처리 시 스칼라 변수 대신 Vector 클래스를 도입하여 연산 가독성 및 유지보수성 향상

원문 읽기