bmp 파일 적용
2022. 12. 27. 15:13ㆍ개인공부/Win32API
Aseprite 프로그램을 이용해서 bmp 파일을 만들면 투명도 때문인지 win32 에 바로 적용이 불가능해서 png 파일로 저장한 후에 그림판에 png 파일로 업로드하고 다시 bmp 파일로 변환했다.아마 aseprite의 bmp파일에는 투명도값이 적용된듯 하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
void CPlayer::render(HDC _dc)
{
int iWidth = (int)m_pTex->Whidth();
int iHeight =(int)m_pTex->Height();
Vec2 vPos = GetPos();
BitBlt(_dc
, (int)(vPos.x - (float)(iWidth / 2))
, (int)(vPos.y - (float)(iHeight / 2))
, iWidth, iHeight
, m_pTex->GetDC()
, 0, 0, SRCCOPY);
TransparentBlt(_dc
, (int)(vPos.x - (float)(iWidth / 2))
, (int)(vPos.y - (float)(iHeight / 2))
, iWidth, iHeight
, m_pTex->GetDC()
, 0, 0,iWidth, iHeight
, RGB(255, 0, 255));
}
|
cs |
이후에는 파일을 가지고 texture 폴더에 bmp파일을 넣고 파일경로를 win32 로 불러오면된다. 이 과정에서 win32에서는 2가지 함수를 사용가능한데 BitBlt 는 Scene 과 같은 방법으로 픽셀 한개 한개를 옮겨오는 방법이다
2번째로는 특정RGB 값을 지정하면 특정RGB값을 가진 픽셀을 제외하고 BITMAP 으로 옮겨주는 함수이다. 이방법을 이용하면 왼쪽그림의 핑크색 부분이 제거된 상태로 렌더링이 가능하다.
이후에는 플레이어, 미사일값을 지정해주어 간단하게 비행기 공격등을 구현했다.
설계하면서 느끼지만 정말로 논리적으로 가독성 좋은 코드를 작성하는 것이 어렵다......
'개인공부 > Win32API' 카테고리의 다른 글
빙글빙글 도는 오브젝트 (0) | 2022.12.29 |
---|---|
Collider (0) | 2022.12.28 |
PathMgr (0) | 2022.12.26 |
Object (0) | 2022.12.25 |
KeyManager (2) | 2022.12.24 |