피드로 돌아가기
Fixing the Tile Image Bug in TCJSGame – A Debugging Story
Dev.toDev.to
Frontend

상속 구조 내 super() 파라미터 누락으로 인한 Silent Failure 해결

Fixing the Tile Image Bug in TCJSGame – A Debugging Story

Kehinde Owolabi2026년 5월 11일7beginner

Context

자체 제작 게임 엔진 TCJSGame의 TileMap 클래스에서 이미지 타일이 렌더링되지 않는 결함 발생. Component 클래스의 상속 구조에서 특정 조건(type === "image")에 따라 렌더링 방식이 결정되는 아키텍처 설계 채택.

Technical Solution

  • Tile 클래스의 생성자 내 super() 호출 시 6번째 인자인 com.type 누락 식별
  • Base Class인 Component에서 type 파라미터 부재 시 기본값인 Rectangle 렌더링으로 동작하는 Silent Failure 메커니즘 분석
  • super() 호출부에 com.type을 추가하여 Tile 인스턴스가 Image 객체를 정상적으로 생성하도록 로직 수정
  • hitObject 함수 내 충돌 판정 조건을 id.y <= otherid에서 id.y >= otherid.y - id.height로 변경하여 플랫폼 충돌 정밀도 개선
  • Component-Tile-TileMap으로 이어지는 상속 체인의 데이터 흐름을 정렬하여 렌더링 파이프라인 정상화

1. 클래스 상속 시 super()에 전달되는 인자의 순서와 개수가 Base Class의 정의와 일치하는지 검증

2. 런타임 에러가 없는 Silent Failure 방지를 위해 핵심 상태 값에 대한 유효성 검증 로직 및 Debug Logging 추가

3. 상속 계층이 깊어질수록 개별 클래스가 아닌 전체 Inheritance Chain 관점에서 데이터 흐름 추적

원문 읽기