godurum/일반
2D테트리스만들기 2. 화면다루기 3) 키보드로박스움직이기
민성아빠
2004. 5. 16. 13:33
####################################################
2D테트리스만들기
2. 화면다루기
2) 키보드로박스움직이기
####################################################
키보드로 박스를 좌우하로 움직이는 방법을 배우도록 하겠습니다. 이전 강의에서
이어지는 내용입니다. 추가된 내용만 올리겠습니다.
//------------실전 예 시작------------------
...
/************** 전역변수 선언 ***************/
short x=400, y=110; // 박스좌표를 전역변수로 선언
/*****************************************/
...
void OnKeyDown(HWND hwnd, UINT vk, bool fdown, int cRepeat, UINT flags)
{
...
case VK_LEFT:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
x = x-10;
Rectangle(hdc, x, y, x+10, y+10);
break;
case VK_RIGHT:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
x = x+10;
Rectangle(hdc, x, y, x+10, y+10);
break;
case VK_DOWN:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
y = y+10;
Rectangle(hdc, x, y, x+10, y+10);
break;
...
}
...
//------------실전 예 끝------------------
3) 키보드로박스 움직이기
OnUser에 있던 static 박스 좌표를 전역 변수로 선언하였습니다.
VK_LEFT : 키보드 왼쪽 화살표가 눌렸을 때 x좌표를 한칸 왼쪽으로 움직인다.
VK_RIGHT : 키보드 왼쪽 화살표가 눌렸을 때 x좌표를 한칸 오른쪽으로 움직인다.
VK_DOWN : 키보드 왼쪽 화살표가 눌렸을 때 y좌표를 한칸 아래로로 움직인다.
특별히 어려운 내용은 없을 것입니다.
2D테트리스만들기
2. 화면다루기
2) 키보드로박스움직이기
####################################################
키보드로 박스를 좌우하로 움직이는 방법을 배우도록 하겠습니다. 이전 강의에서
이어지는 내용입니다. 추가된 내용만 올리겠습니다.
//------------실전 예 시작------------------
...
/************** 전역변수 선언 ***************/
short x=400, y=110; // 박스좌표를 전역변수로 선언
/*****************************************/
...
void OnKeyDown(HWND hwnd, UINT vk, bool fdown, int cRepeat, UINT flags)
{
...
case VK_LEFT:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
x = x-10;
Rectangle(hdc, x, y, x+10, y+10);
break;
case VK_RIGHT:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
x = x+10;
Rectangle(hdc, x, y, x+10, y+10);
break;
case VK_DOWN:
hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(WHITE_PEN));
Rectangle(hdc, x, y, x+10, y+10);
SelectObject(hdc, GetStockObject(BLACK_PEN));
y = y+10;
Rectangle(hdc, x, y, x+10, y+10);
break;
...
}
...
//------------실전 예 끝------------------
3) 키보드로박스 움직이기
OnUser에 있던 static 박스 좌표를 전역 변수로 선언하였습니다.
VK_LEFT : 키보드 왼쪽 화살표가 눌렸을 때 x좌표를 한칸 왼쪽으로 움직인다.
VK_RIGHT : 키보드 왼쪽 화살표가 눌렸을 때 x좌표를 한칸 오른쪽으로 움직인다.
VK_DOWN : 키보드 왼쪽 화살표가 눌렸을 때 y좌표를 한칸 아래로로 움직인다.
특별히 어려운 내용은 없을 것입니다.