////
Search
Duplicate
📃

2주

학습내용
WINAPI 객체지향 프로그래밍으로 사용하기
객체지향
데이터와 절차를 하나의 덩어리로 묶어서 생각
책임에 따라 잘 나눠서 개발
절차지향
순차적인 처리가 중요시 되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
아직 비행기나 자동차 (임베디드) 쪽은 절차지향을 사용
윈도우 HDC, HBRUSH 사용하기
로우 레벨에 직접 접근하는 것(윈도우 수정을 직접 하는 것 등) → 잘못 사용하면 메모리 침범에 대한 위험이 있으므로 제한
HDC
HBRUSH
자주 사용하는 GDI 오브젝트들을 미리 DC안에 만들어 두었고, 그 오브젝트를 스톡 오브젝트라고 한다
HDC 그리기 연습
case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // TODO: 여기에 hdc를 사용하는 그리기 코드를 추가합니다... Rectangle(hdc, 200, 200, 300, 300); // 블루 브러쉬 생성 HBRUSH blueBrush = CreateSolidBrush(RGB(0, 0, 255)); // 블루 브러쉬 사용 HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, blueBrush); Rectangle(hdc, 100, 100, 200, 200); // 레드 브러쉬 생성 HBRUSH redBrush = CreateSolidBrush(RGB(255, 0, 0)); // 레드 브러쉬로 변경 , old brush는 blue brush가 oldBrush = (HBRUSH)SelectObject(hdc, redBrush); Rectangle(hdc, 300, 300, 400, 400); SelectObject(hdc, oldBrush); // Ellipse(hdc, 500, 500, 800, 800) DeleteObject(blueBrush); DeleteObject(redBrush); EndPaint(hWnd, &ps); } break;
C++
복사
Application 클래스 구성
게임 구동 원리
update
render
반복
Get Message
게임은 가만히 있어도 끊임없이 움직인다
그래서 Peek Message 사용
네모 움직이기
정적 라이브러리 vs 동적 라이브러리
수많은 소스코드를 라이브러리화 시켜서 재사용
정적 라이브러리는 컴파일/빌드할 때 합쳐져서 생성 (.lib)
버전이 바뀌면 새로 빌드
동적 라이브러리 (.dll) 는 따로 파일이 존재
버전이 바뀌면 파일을 바꿔치기
공유 소스 프로젝트
참조용
메인 엔진 → 정적 라이브러리 참조 → 공유 소스 참조
과제
네모 움직이기 구현
application.run()함수부터 한줄 한줄 실행하여 실행 흐름 파악