[DirectX 11] 슬라이딩 퍼즐 Sliding Puzzle
texture uv 좌표를 이용한 슬라이딩 퍼즐 제작
여러 장의 이미지 생성 후, 위치는 고정, 규칙적으로 분할한 uv좌표를 랜덤 셔플해 대입
- 이미지는 2차원형태로 나눔(나는 1차원 배열을 2차원 형태로 사용)
- puzzleNum 수에 따라 수학식으로 이미지 월드 좌표 및 uv 좌표 판정 (나는 스크린 좌표계, 월드 좌표계 변환식을 사용했으나, 다른 방법으로 pivot을 좌측상단으로 잡고, 이미지의 위치는 화면 좌표상단을 기준으로 로컬 좌표를 활용하는 방법이 더 낫겠다 싶음)
- 보이지 않는 위치의 이미지만 렌더링 하지 않음
- 퍼즐 이동: 방향키 입력 시 렌더링하지 않았던 이미지의 uv 좌표에, 이동할 위치에 있는 uv 좌표를 대입
- 셔플: 각 이미지 uv 좌표 다시 랜덤 셔플
- puzzleNum: 퍼즐 이미지 개수 재조정
- cheat: 기록해둔 origin uv 대입
후기
- texture uv 좌표를 배우고 바로 활용할 수 있었다.
- 처음에는 분할한 uv좌표를 대입한 후, 위치를 랜덤으로 분포시켰는데,
- 퍼즐 이동 구현에 어려움이 있었다.
- 그냥 인덱스에 따른 위치는 고정한 후, 분할한 uv를 랜덤셔플해서 대입하는 게 구현이 용이했다.
댓글남기기