dico.gif


DANG.gif

giphy---복사본.gif

i15947420946.gif

huuon2.gif



♨신규 게시물♨




♨신규 댓글♨




♨랭킹 TOP 50♨


  1. 사나 28,441
  2. 치즈돈가스덮밥 24,653
  3. 투혼v 23,770
  4. ZicP 20,948
  5. 호날두마리치킨 17,455
  6. 김돈치 12,414
  7. 에케덟 11,551
  8. 반가워용 11,138
  9. 자료구 10,520
  10. 안인시우안 9,949
  11. 타이갓 8,981
  12. 도리고 8,935
  13. 브랜뉴 8,848
  14. 악당 8,688
  15. 헉헉로 8,453
  16. 킴성태와함께 8,124
  17. kimjg 7,460
  18. Ollie 5,925
  19. 피요옹 5,350
  20. 노트 4,691
  21. 지금몇시지 4,644
  22. 밍정잉 4,534
  23. 도리toS 4,393
  24. 염탐맨 4,304
  25. 은당수 4,108
  26. 뉴비임다 3,820
  27. 틸란 3,554
  28. 모두모두파이팅 3,525
  29. 원솔 3,486
  30. 인도남자 3,115
  31. 유미코 2,970
  32. 셍스 2,761
  33. 무무기 2,613
  34. 남동현 2,560
  35. 와룡 2,539
  36. 택이 2,439
  37. 가국가가 2,439
  38. 코난 2,419
  39. 츠이게스레가 2,418
  40. gurdl20 2,393
  41. 빛나는길 2,346
  42. KIM 2,316
  43. 라일리 2,295
  44. 살수가없다 2,272
  45. 제리이라아 2,206
  46. 리신 2,168
  47. 선하 2,163
  48. f3sads 2,147
  49. Jong 2,079
  50. 개나리 2,058

6faa2286ccd015fb37f28f688e13eac6.png

00. 크레이지 아케이드 만들기 (Win API 소개)

sacyz1n2019.08.10 09:00조회 수 53추천 수 2댓글 2

  • 1
    • 글자 크기

안녕하세요. 

 

뭐 별건 없고 크레이지 아케이드를 모작해보자! 입니다.

 

Win API + DirectX9 을 이용해서 만들어 봅시다.

 

이 강의는 C, C++, STL을 어느정도 아시는분이 보시는게 적절하다고 생각합니다.

 

먼저 Win Api를 만들어봅시다.

 

1. Microsoft Visual Studio 를 켜줍니다.

 

2. 좌측 상단에 파일 클릭 ->  새로만들기(N) -> 프로젝트(P) 를 눌러줍시다.

 

3. 그러면 아래와 같은 창이 나타납니다.

 

4. 이름은 Client, 솔루션 이름은 Framework 라고 지은 후 확인을 눌러줍니다.

 

1.PNG

 

 

5.  그냥 마침을 눌러줍시다.

 

 

2.PNG

 

6. Win API는 변수 자료형앞에 H가 붙은 자료형은 핸들(Handle) 이라고 합니다.

 

핸들은 단순 정수로 이루어져있습니다. 이  정수값은 운영체제에서 부여해주므로 저희는 이 정수값이 무엇인지 알 필요는 없습니다.

 

그리고 핸들은 비유하자면 주민등록번호와 같습니다.  즉, 나의  주민등록번호는 세상에 단 하나만 존재하듯이 핸들값 또한 단 하나만 존재해야합니다.

 

다시 말하자면 핸들값은 겹치지 않습니다. ( 겹치지 않게 운영체제가 잘 부여해줍니다.)

 

7. 그럼 밑에 처럼 HWND g_hWnd를 추가해줍시다. 이 핸들은 WND 즉 Window 핸들입니다.

 

자주 사용되므로 전역 변수를 가지도록 하겠습니다.

 

 

4.PNG

 

 

8.  윈도우의 생성 과정은 아래와 같습니다.

 

    1. 윈도우 클래스를 메모리 상에 등록한다.    

    2. 메모리상에 등록된 윈도우 클래스대로 윈도우를 생성합니다.

    3. 생성된 윈도우를 출력합니다.

 

9. MyRegisterClass는 윈도우 클래스를 등록하는 과정입니다.

  

   1. WNDCLASSEXW라는 구조체는 윈도우에 대한 특성을 담는 구조체입니다.

   2. 이 구조체로 선언한 변수에 대하여 윈도우의 특성을 정의해주고 있습니다.

   3. 마지막으로 RegisterClassExw 라는 함수는 위에서 정의한 윈도우 클래스 변수를 메모리 상에 등록시켜주는 함수입니다.

    

 

3.PNG

 

10. 메모리 상에 등록된 윈도우 클래스 대로 윈도우를 생성 후 출력해줍니다.

 

    1. g_hInst = hInstance 부분에서 프로그램 핸들을 전역변수에 저장해주고 있습니다.

    2. CreateWindowW 함수를 통하여 메모리상에 등록된 윈도우 클래스대로 윈도우를 생성해줍니다.

    3. ShowWindow 함수를 통하여 생성된 윈도우를 출력해줍니다.

 

 

5.PNG

 

11. 여긴 메시지 루프입니다. 윈도우가 생성되어 출력된 후에 들어오는 곳입니다.

   

      모든 이벤트는 메시지가 발생합니다.

      즉, 마우스를 클릭하거나 키보드를 입력하거나 마우스 휠을 움직이거나 등등 이벤트가 발생하면

     운영체제에서 메시지를 발생시킵니다. 

     발생한 메시지는 메시지큐라는 버퍼에 들어가 하나씩 하나씩 꺼내서 읽어줍니다.

 

    그리고 저희는 꺼낸 이 메시지를 가지고 상황에 알맞게 처리해줘야합니다.

 

   여기서 GetMessage라는 함수는 메시지큐에서 메시지를 꺼내주는 역활을 합니다.

    만약 메시지큐에 메시지가 없을 경우 데드락(DeadLock) 상태에 빠집니다. 즉, 메시지가 들어올 때 까지 주구장창 대기합니다.

   그리고 이 함수는 WM_QUIT 메시지를 받을 경우 FALSE를 반환합니다. ==> 루프를 탈출하게 됩니다. ==> 프로그램 종료

 

  TranslateAcccelerator는 단축키를 눌렀냐 판별하는건데 게임을 만드는데 사용하지 않기때문에 넘어갑니다.

 

  TranslatetMessage : 메시지를 해석합니다.  즉, 키보드를 눌렀는데 어떤 키를 눌렀냐 이런걸 해석합니다.

 

   DispatchMessage : 해당 메시지를 윈도우클래스에서 설정한 윈도우 프로시저 함수로 보냅니다.

                                                  ==> 윈도우 프로시저 함수에서 메시지를 상황에 맞게 처리해줍니다.

 

6.PNG

 

 다시 정리 해보자면

 

   1. 윈도우 클래스를 메모리 상에 등록합니다. 

   2. 메모리 상에 등록된 윈도우 클래스대로 윈도우를 생성합니다. (CreateWindowW)

   3. 생성한 윈도우를 출력합니다. (ShowWindow)

   4. 이후 메시지 루프에서 계속 메시지를 처리합니다.

 

추천해주신 분들

  • 1
    • 글자 크기
01. 크레이지 아케이드 만들기 (윈도우 창 보정,) (by sacyz1n) 파이썬을 이용한 간단한 메이플스토리 만들기(5/20) - 회원가입 및 로그인 기능 수정 및 다음 화면 만들기 (by 지금몇시지)

댓글 달기 WYSIWYG 사용

글쓴이 비밀번호
댓글 2
번호 제목 글쓴이 조회 수
23 파이썬을 이용한 간단한 메이플스토리 만들기(6/20) - 로그인 기능 수정및 다음화면 이미지 넣기2 지금몇시지 68
22 03. 크레이지 아케이드 만들기 (타이머 매니저, 싱글톤 패턴)3 sacyz1n 63
21 02. 크레이지 아케이드 만들기 (PeekMessage, 게임 구조) sacyz1n 31
20 01. 크레이지 아케이드 만들기 (윈도우 창 보정,)2 sacyz1n 43
00. 크레이지 아케이드 만들기 (Win API 소개)2 sacyz1n 53
18 파이썬을 이용한 간단한 메이플스토리 만들기(5/20) - 회원가입 및 로그인 기능 수정 및 다음 화면 만들기1 지금몇시지 41
17 파이썬을 이용한 간단한 메이플스토리 만들기 공지(포토샵 디자이너 모집)2 지금몇시지 76
16 파이썬을 이용한 간단한 메이플스토리 만들기(4/20) - 회원가입 및 로그인 기능 만들기5 지금몇시지 111
15 파이썬을 이용한 간단한 메이플스토리 만들기(3/20) - 로그인 화면 만들기3 지금몇시지 138
14 파이썬을 이용한 간단한 메이플스토리 만들기(2/20) - IDE(통합개발환경)설치편1 지금몇시지 34
13 파이썬을 이용한 간단한 메이플스토리 만들기(1/20) - 설치편1 지금몇시지 56
12 [C#]프로그래밍 강좌 5 - 2장 : 기본 자료형1 사나 20
11 [던파]구축법3 사나 75
10 [던파]NPC판매품목 변경하기 수정본1 사나 23
9 [던파]모든 던전난이도 언락 사나 21
8 [C#]프로그래밍 강좌 5 - 1장 : 기본 자료형 사나 14
7 [C#]프로그래밍 강좌 4장 : C# 기본용어1 사나 20
6 [C#]프로그래밍 강좌 3장 : C# 시작하기 사나 16
5 [C#]프로그래밍 강좌 2장 : C# 시작하기 사나 21
4 [C#]프로그래밍 강좌 1장 : C#의 정의3 사나 28
첨부 (1)
Framework.zip
12.58MB / Download 0
">

서버에 요청 중입니다. 잠시만 기다려 주십시오...