본문 바로가기

WinAPI

[WinAPI] Pivot

 

POSITION tPos = m_tPos - m_tSize * m_tPivot;

BitBlt(hDC, m_tPos.x, m_tPos.y, m_tSize.x, m_tSize.y,
			m_pTexture->GetDC(), 0, 0, SRCCOPY);

 

Pivot을 통해 이미지의 어떤 부분을 기준으로 출력할 지 정할 수 있다. 기본 위치 정보 m_tPos에서 m_tSize 와 m_tPivot을 곱한만큼 뺀다. Pivot의 x를 0.5f y를 1f로 설정했을 때 아래와 같이 그려진다.

 

파란색 점이 m_tPos이다. 그냥 m_tPos기준으로 이미지를 출력하면 이미지의 왼쪽 위 끝 부분을 기준으로 출력한다.

그런데 m_tSize * m_tPivot만큼 빼주면 중앙 아래 쪽이  m_tPos자리에 위치하게 된다. 그러면 이제부터 중앙 아래쪽을 기준으로 이미지가 움직이게 된다.

'WinAPI' 카테고리의 다른 글

[WinAPI] 게임 프레임 워크 - 2. Scene과 SceneManager  (0) 2022.02.01
[Winapi] 게임 프레임워크 - 1. Core  (0) 2022.02.01
[WinAPI] 더블 버퍼링  (0) 2022.01.20
[WinAPI] 삼각함수  (0) 2022.01.16
[WinAPI] 델타 타임  (0) 2022.01.16