목차
PART 0 Microsoft Visual C++ .NET 다루기
   1. 프로그램을 만드는 과정 ... 19
      1.1. 프로젝트 만들기 ... 19
PART 1 도스 창에서 게임 만들기
   2. 머드 게임 만들기 ... 29
      2.1 게임 상황 제시하기 ... 29
        2.1.1. 헤더파일에 대하여 ... 31
        2.1.2. main() 함수에 대하여 ... 32
        2.1.3. printf() 글자출력 ... 33
      2.2. 플레이어로부터 조건 입력받기 ... 35
        2.2.1. 변수에 대하여 ... 37
      2.3. 상황판단하기 ... 42
      2.4. 여기 저기 지도 만들기 ... 66
      2.5. 격돌! 드디어 격투 ... 74
        2.5.1. switch()문 ... 96
   3. 가위바위보 게임 만들기 ... 116
      3.1. 가위바위보 게임 구상하기 ... 116
      3.2. 예측할 수 없는 랜덤 수치 만들기 ... 118
      3.3. if()문의 최적화 ... 122
      3.4. 반복 플레이 ... 126
      3.5. 약간의 함수 활용 ... 134
      3.6. main()함수의 활용 ... 139
   4. 텍스트로 비행기 게임 만들기 ... 145
      4.1. 도스창의 화면 구성과 출력 ... 145
      4.2. 텍스트 배경화면 만들기 ... 148
      4.3. 플레이어 바행기 그리기 ... 153
      4.4. 플레이어 비행기의 조종 ... 157
      4.5. 총알 발사! ... 160
      4.6. 총알을 여러발 발사하기 ... 169
        4.6.1. 구조체에 대하여 ... 169
      4.7. 적기 만들기 ... 175
      4.8. 총알과 적기의 충돌 ... 177
   5. 분수 만들어 보기 ... 186
      5.1. 포물선 운동의 이해 ... 186
      5.2. 분수 입자 구조 잡기 ... 189
      5.3. 분수 입자의 역학 운동 ... 192
      5.4. 분수 효과 전체 소스 ... 193
      5.5. 분수 효과 결과 보기 ... 198
      5.6. 파티클 시스템과 그 예들 ... 199
PART 2 공부하기에 앞서
   6. C-언어의 개요 ... 206
      6.1. C-언어의 데이터형 ... 206
        6.1.1. printf() 함수에 관하여…… ... 206
        6.1.2. 특수 문자 출력 ... 208
        6.1.3. scanf() 함수에 관하여…… ... 209
   7. 데이터 ... 212
      7.1. 데이터형의 분류 ... 212
      7.2. 정수와 실수 ... 214
      7.3. 정수형(integral Type) ... 214
   8. 문자형 ... 217
      8.1. 문자형(Charactor Type) ... 217
      8.2. 실수형(Floating Type) ... 220
      8.3. 상수형(Constant) ... 220
      8.4. void 형 ... 222
   9. 보조형 ... 223
      9.1. 보조형 signed형 ... 223
      9.2. 결합형 ... 223
      9.3. const형에 관하여…… ... 224
      9.4. auto형에 관하여…… ... 224
      9.5. static형에 관하여…… ... 226
        9.5.1. 함수 내에서 static ... 227
      9.6. extern 변수에 관하여…… ... 232
      9.7. register 변수에 관하여…… ... 233
   10. 〈포인터〉 ... 234
      10.1. 포인터형(가장 중요 부분) ... 234
   11. 연산자 ... 236
      11.1. 산술 연산자 ... 236
        11.1.1. 이항 연산자(Binary Operator) ... 236
        11.1.2. 단항 연산자(Unary Operator) ... 240
   12. 대입 연산자 ... 243
      12.1. 대입 연산자(Assignment Operator) ... 243
      12.2. 관계 연산자 ... 245
      12.3. 논리 연산자 ... 247
      12.4. 참과 거짓 ... 249
   13. 조건 연산자 ... 249
      13.1. 조건 연산자(3항 연산자) ... 249
      13.2. 나열 연산자(,) ... 251
   14. 비트 연산자 ... 254
      14.1. 비트란? ... 254
      14.2. 비트 이동 연산자 ... 254
        14.2.1. 〈〈 (좌 쉬프트 연산자) ... 254
        14.2.2. 〉〉(우쉬프트 연산자) ... 256
        14.2.3. 곱셈 Shift ... 258
      14.3. 비트 논리 연산자 ... 258
        14.3.1. &연산자 ... 259
        14.3.2. | 연산자 ... 259
        14.3.3. 비트 논리 연산자 활용 ... 260
        14.3.4. ^연산자 ... 260
        14.3.5. ~ 연산자 ... 261
      14.4. 비트 대입 연산자 ... 261
   15. 캐스트 연산자 ... 262
      15.1. 캐스트 연산자 (형명) ... 262
      15.2. sizeof 연산자 ... 264
      15.3. 산술 변환 규칙 ... 265
   16. 제어구조 ... 266
      16.1. if문 ... 266
      16.2. else문 ... 269
   17. IF()문의 판별식 ... 271
      17.1. 관계연산자 ... 271
      17.2. 논리연산자 ... 276
   18. switch() case:문 사용 ... 280
      18.1. switch case 선택문 ... 280
        18.1.1 일반적인 switch문 ... 280
   19. while()과 do while()순환문 ... 283
      19.1. while 순환문 ... 283
      19.2. do while 순환문 ... 284
   20. for() 순환문 ... 285
      20.1. for 순환문 ... 285
        20.1.1. for 순환문의 개론 ... 285
        20.1.2. 쉼표 연산자와 for 순환문 ... 286
        20.1.3. goto문 ... 288
        20.1.4. break ... 289
        20.1.5. continue문 ... 290
   21. 배열 ... 291
      21.1. 배열(Array) ... 291
      21.2. 다차원 배열 ... 293
      21.3. 배열의 초기화 ... 296
   22. 포인터 ... 301
      22.1. 주소 ... 302
      22.2. 포인터형의 정의 ... 303
      22.3. 문자 포인터 ... 308
      22.4. 배열형 포인터 ... 312
      22.5. 배열과 포인터 ... 315
      22.6. 함수에서의 배열과 포인터 ... 318
      22.7. 포인터의 연산 작업 ... 324
        22.7.1. 포인터의 대입 ... 324
        22.7.2. 포인터의 증가와 감소 ... 325
        22.7.3. 포인터의 NULL ... 326
   23. 함수 ... 327
      23.1. C언어의 함수 개론 ... 327
      23.2. 함수의 프로토타입(함수 원형) ... 329
      23.3. 함수의 사용영역 ... 329
      23.4. 함수 매개변수 ... 332
      23.5. 전역변수와 매개변수와의 관계 ... 332
      23.6. 매개변수의 전달 ... 333
        23.6.1. 값에 의한 매개변수 전달 ... 333
        23.6.2. 주소에 의한 매개변수 전달 ... 333
        23.6.3. 함수를 매개변수로 가지는 함수 ... 334
      23.7. 가변인수 함수 ... 334
      23.8. Main 함수 ... 336
      23.9. 함수에서 사용되는 변수 ... 338
      23.10. 함수의 return ... 339
   24. 메모리 제어 ... 341
      24.1. void *malloc(size_t size); ... 341
      24.2. void free(void *memblock); ... 342
      24.3. new와 delete ... 345
   25. 구조체 ... 347
      25.1. 구조체의 선언 형식 ... 347
      25.2. 구조체 사용법 ... 347
      25.3. typedef를 통한 구조체 형정의 ... 350
   26. Class ... 352
   27. 구조체 Ⅱ ... 359
      27.1. 구조체 이모조모 ... 359
   28. FILE ... 371
      28.1. 스트림(Stream) ... 371
      28.2. 파일 포인터(File Pointer) ... 371
      28.3. 파일 접근 모드(File Access Mode) ... 371
        28.3.1. 읽기 모드 ... 372
        28.3.2. 쓰기 모드 ... 372
        28.3.3. 추가 모드 ... 372
        28.3.4. 텍스트 모드 ... 373
        28.3.5. 이진수 모드 ... 372
      28.4. 텍스트 모드 파일 접근 ... 373
      28.5. 2진 파일 접근? ... 381
        28.5.1. size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream); ... 385
        28.5.2. size_t fread(void *buffer, size_t size, size_t count, FILE *stream); ... 386
        28.5.3. int fseek(FILE *stream, long offset, int origin); ... 386
      28.6. 파일과 헤더 ... 391
        28.6.1. 헤더(HEADER) ... 391
PART 3 윈도우창에서 게임 만들기
   29. 윈도우창 만들기 ... 405
      29.1. WinMain()함수 ... 408
      29.2. MsgProc()함수 ... 413
   30. 마우스를 처리하기 ... 415
      30.1. 마우스 이동좌표 구하기 ... 415
      30.2. 화면에 출력하기 ... 417
      30.3. 그 외 마우스 메시지 처리 ... 425
   31. 카드게임 만들기 ... 427
      31.1. 카드 게임을 위한 마우스 처리하기 ... 427
      31.2. 카드 뒤집기 게임 알고리즘 ... 429
      31.3. 게임 초기 부분 ... 431
      31.4. 카드 그리기 ... 435
      31.5. 카드 뒤집기 및 비교 ... 439
      31.6. 게임 엔딩 처리 ... 443
      31.7. 카드 뒤집기 게임 전체 소스 ... 444
   32. 키 메시지를 이용한 슈팅게임 만들기 ... 456
      32.1. 헤더 바꾸기 ... 459
      32.2. 메인 함수 바꾸기 ... 460
      33.3. 그림영역 함수들 바꾸기 ... 462
      33.4. 키보드 처리 함수 바꾸기 ... 466
      32.5. API 윈도우 모드 슈팅 게임 만들기 ... 470
      32.6. 전 화면 지우기 ... 479
PART 4 3D 슈팅 게임 만들기
   33. 3D 그래픽의 이해 ... 483
      33.1. 3차원의 인식 ... 483
        33.1.1. 2차원 + 원근감 ... 483
        33.1.2. 숨겨진 선 제거 ... 484
        33.1.3. 컬러와 쉐이딩 ... 485
        33.1.4. 빛과 그림자 ... 485
        33.1.5. 3차원 좌표계 ... 486
        33.1.6. 투영(Projection) ... 487
      33.2. 3D 그림 그리기 ... 488
        33.2.1. 점 그리기 ... 488
        33.2.2. 선 그리기 ... 489
        33.2.3. 삼각형 그리기 ... 489
      33.3. 3D 좌표변환 ... 490
        33.3.1. Transformation ... 490
        33.3.2. Eye 좌표계 ... 491
        33.3.3. 모델링 변환(Modeling Transformation) ... 492
        33.3.4. 투영 변환(Projection Transfotmation) ... 493
        33.3.5. 뷰포트 변환(Viewport Transformation) ... 493
      33.4. 조명 ... 494
        33.4.1. Ambient 조명(Light) ... 494
        33.4.2. Diffuse 조명 ... 494
        33.4.3. Specular 조명 ... 495
      33.5. 물체와 빛 ... 495
        33.5.1. Material ... 495
        33.5.2. Ambient 라이트의 효과 ... 495
        33.5.3. Diffuse 라이트와 Specular 라이트의 효과 ... 496
      33.6. Normal 벡터 ... 496
      33.7. 그림자 ... 497
      33.8. 텍스처 ... 498
        33.8.1. 텍스처 맵핑 ... 498
        33.8.2. 랩핑(wrapping) ... 499
        33.8.3. 미러(mirror) 맵핑 ... 499
        33.8.4. 클램프(clamp) 맵핑 ... 500
        33.8.5. Mipmap ... 501
        33.8.6. 범프 맵핑 ... 501
      33.9. 렌더링 ... 501
        33.9.1. 랜더링이란 ... 501
        33.9.2. 와이어 프레임 렌더링 ... 502
        33.9.3. 물체의 부분부분 깊이 체크 ... 502
   34. DirectX 3D 사용하기 ... 503
      34.1. 3D 그래픽 카드를 이용하는 방법 ... 503
      34.2. DirectX 3D 초기화 ... 509
      34.3. 3D 화면 표현하기 ... 514
      34.4. 종료하기 ... 516
      34.5. 3D 초기 풀 소스 ... 517
   35. 게임 배경 만들기 ... 521
      35.1. 사각면 만들기 ... 521
        35.1.1. 버텍스 버퍼 만들기 ... 521
        35.1.2. 버텍스 버퍼에 정점의 데이터 입력 ... 526
        35.1.3. 버텍스 버퍼의 내용 그리기 ... 527
        35.1.4. 버텍스와 화면 좌표 구성 ... 534
        35.1.5. 사각별 만들기 ... 535
      35.2. 사각형에 텍스처 입히기 ... 537
        35.2.1. 텍스처 버퍼 선언과 로딩 ... 537
   36. 매트릭스 ... 544
      36.1. 행렬 ... 544
        36.1.1. 단위행렬 ... 546
        36.1.2. 행렬의 합 ... 546
        36.1 3. 행렬의 곱 ... 547
        36.1.4. 역행렬 ... 547
        36.1.5. 전치행렬 ... 548
        36.1.6. 회전 변환 ... 549
        36.1.7. 이동 변환 ... 552
        36.1.8. 크기 변환 ... 553
        36.1.9. 행렬의 적용 ... 555
      36.2. 투영 변환 행렬 ... 565
      36.3. 카메라 변환 행렬 ... 567
   37. 3D 화면에서 비행기 슈팅게임 만들기 ... 572
      37.1. API윈도우 모드 비행기 소스를 고쳐보기 ... 572
      37.2. InitGame()함수 수정 ... 574
      37.3. 각각의 그림 출렉
닫기