Upload
mingeun-park
View
680
Download
11
Embed Size (px)
DESCRIPTION
NHN NEXT 강의 자료
Citation preview
WINDOWS 메시지 프로그래밍게임 제작 실습 프로젝트 보충 자료
박민근
Console 프로그래밍
Console 프로그래밍 진행
Console 프로그래밍 진행
순차적 프로그래밍
만약 유저가 입력을 하지 않으면 ??
입력이 들어올때까지 무한 대기
게임의 흐름이 멈춘다
Windows 프로그래밍
유저 입력( 메시지
큐 )
메시지 가져오기
메시지변환
메시지프로시저
게임 업데이트
화면 렌더링
프로그램 / 게임 초기화
프로그램 / 게임 종료
메시지 루프
Update()
1 Frame
무한루프
Windows 프로그래밍
Windows 프로그래밍
메시지 루프• 메시지 큐에서 메시지를 가져
온다• 메시지 큐에 메시지가 없으면
곧바로 TRUE 반환
• 윈도우 메지지를 처리가 편한 메시지로 변환 WM_KEYDOWN -> WM_CHAR
• 메시지를 메시지 프로시저에 보내기
메시지 프로시저
Message 윈도우 메시지 ID
wParam 메시지에 따른 파라미터
lParam 메시지에 따른 파라미터
파라미터에 들어오는 값은 메시지마다 다르다 . MSDN 참조
Ex) 프로그램의 종료 처리종료 버튼 클릭
WM_DESTROY 메시지
WM_DESTROY 처리
•윈도우 종료 처리PostQuitMessage(0)
종료 처리를 하지 않는다면 어떻게 될까 ?
그럼 윈도우 메시지는 어떤 종류들이
있을까나 ?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=vs.85).aspx#windows_messages
실습 ) 방향키로 윈도우 이동
WM_KEYDOWN 키가 눌러지면 발생되는 윈도우 메시지 • wParam : 입력된 키보드 값 A-Z, Virtual Key Codes (VK_) (MSDN)
WM_KEYUP 키가 눌렀다가 떼어지면 발생되는 윈도우 메시지 • wParam : 입력된 키보드 값 A-Z, Virtual Key Codes (VK_) (MSDN)
실습 ) 방향키로 윈도우 이동
GetWindowRect(HWND, LPRECT)윈도우의 크기 (RECT) 를 반환 한다 .
MoveWindow(HWND, x, y, width, height, Redraw)윈도우의 크기 (RECT) 를 반환 한다 .
메시지의 연동