목차
Chapter 01 게임 디자인
   모든 것을 시작하게 만든 게임 ... 30
   그래서, 대단한 아이디어란 게 뭔데? ... 31
      iPhone에 적합한 게임 ... 32
      스토리 라인 ... 33
      이름에 숨겨진 의미 ... 34
      게임의 목표 ... 35
   게임 플레이 요소 ... 36
      시간 ... 36
      생명 ... 37
      체력 ... 37
      오브젝트(Object) ... 38
      문(門, Door) ... 39
      무기 ... 40
      엔티티(Entity) ... 40
      플레이어(Player) ... 41
   정리 ... 42
Chapter 02 Three Ts: Terminology, Technology, Tools
   Terminology ... 45
      스프라이트(Sprite) ... 45
      스프라이트 시트(Sprite Sheet) ... 47
      애니메이션(Animation) ... 50
      비트맵 폰트(Bitmap Font) ... 52
      타일 맵(Tile Maps) ... 52
      Particle System ... 54
      충돌 감지(Collision Detection) ... 56
      인공지능(AI; Artificial Intelligence) ... 57
      게임 루프(Game Loop) ... 57
   Technology ... 60
      Objective-C ... 61
      Cocoa Touch ... 61
      OpenGL ES ... 62
      OpenAL ... 66
   Tools ... 67
      iPhone SDK ... 38
   정리 ... 75
Chapter 03 여정의 시작
   Xcode 프로젝트 생성 ... 78
   프로젝트 실행 ... 81
   코드 분석 ... 82
   Application Delegate ... 82
      헤더파일 분석 ... 84
      Implementation 파일 분석 ... 86
   EAGLView ... 90
      EAGLView.h ... 91
      EAGLView.m ... 93
   ES1Renderer ... 104
      ES1Renderer.h 분석 ... 104
      ES1Renderer.m 분석 ... 105
      프레임버퍼(Framebuffer)와 렌더버퍼(Renderbuffer) 생성 ... 106
      색깔 값 정의 ... 114
      위치 ... 115
   OpenGL 동작 원리 ... 117
      모델 변환 ... 118
      화면에 그리기 ... 119
   정리 ... 123
Chapter 04 게임 루프
   결론은 타이밍 ... 126
   충돌 감지(Collision Detection) ... 128
   게임 루프 ... 128
      프레임 기반(Frame-Based) 게임 루프 ... 129
      시간 기반 고정 간격(Time-Based, Fixed Interval) 게임 루프 ... 131
   코드 분석 ... 133
      EAGLView 클래스 ... 134
      EAGLView.m 파일 ... 134
      ES1Renderer 클래스 ... 138
      View Port 설정 ... 142
   게임 장면과 게임 컨트롤러 ... 144
      게임 컨트롤러 생성 ... 144
      GameController 클래스 ... 144
      싱글톤(Singleton) 만들기 ... 147
      GameController.m ... 148
      AbstractScene 클래스 ... 152
      GameScene 클래스 ... 154
   정리 ... 157
   연습문제 ... 157
Chapter 05 이미지 렌더링
   렌더링(Rendering)이란? ... 160
   사각형 그리기 ... 162
   텍스처 매핑(Texture Mapping) ... 165
      텍스처 좌표체계 ... 166
   Interleaved Vertex Arrays ... 168
   구조체(Structure) ... 171
   이미지 렌더링 클래스 ... 173
      Texture2D 클래스 ... 174
      TextureManager 클래스 ... 186
      ImageRenderManager 클래스 ... 189
   Image 클래스 ... 198
      초기화 ... 198
      서브이미지(Sub-Image) 탐색 ... 203
      이미지 복제 ... 204
      이미지 렌더링하기 ... 204
      Getter와 Setter ... 208
   정리 ... 209
   연습문제 ... 209
Chapter 06 스프라이트 시트(Sprite Sheet)
   스프라이트 시트(Sprite Sheet) 소개 ... 212
      단순 스프라이트 시트(Simple Sprite Sheet) ... 213
      복합 스프라이트 시트(Complex Sprite Sheet) ... 214
   Zwoptex 사용하기 ... 216
   SpriteSheet 클래스 ... 218
      초기화 ... 219
      스프라이트 탐색 ... 223
   PackedSpriteSheet 클래스 ... 224
      초기화 ... 224
      컨트롤 파일 파싱 ... 226
      스프라이트 추출 ... 227
   정리 ... 228
   연습 문제 ... 229
Chapter 07 애니메이션(Animation)
   애니메이션 프로젝트 ... 232
   Animation 소개 ... 233
      프레임 ... 234
      State ... 234
      Type ... 234
      Direction ... 234
      Bounce Frame ... 235
   Animation 클래스 ... 235
      초기화 ... 236
      프레임 추가 ... 237
      애니메이션 업데이트 ... 238
      애니메이션 렌더링 ... 240
      마무리 ... 241
   정리 ... 244
   연습문제 ... 244
Chapter 08 비트맵 폰트(Bitmap Fonts)
   비트맵 폰트 프로젝트 ... 248
   비트맵 폰트 소개 ... 249
   비트맵 폰트용 스프라이트 시트 제작 ... 251
   BitmapFont 클래스 ... 254
      헤더 파일 ... 254
   C로 하는 부분? ... 255
      초기화 ... 255
      컨트롤 파일 파싱 ... 256
   텍스트 렌더링 ... 261
      텍스트 정렬 방식 구현하기 ... 263
      텍스트 폭과 높이 ... 265
      Deallocation ... 267
   정리 ... 267
   연습문제 ... 268
Chapter 09 타일 맵(Tile Maps)
   타일 맵 프로젝트 ... 270
   타일 맵 소개 ... 271
   타일 맵 에디터 ... 273
      타일 팔레트(Tile Palette) ... 275
      레이어(Layers) ... 275
   타일 맵 제작 ... 276
      새로운 타일 세트 생성 ... 277
      맵 레이어(Map Layer) 생성 ... 279
      오브젝트 레이어(Object Layer) 생성 ... 279
      맵 그리기 ... 280
      오브젝트 배치 ... 280
   Tiled 프로그램 설정 파일 ... 281
      Map 요소 ... 281
      Tileset 요소 ... 282
      Layer 요소 ... 283
      Object Group 요소 ... 284
   타일 맵 클래스 ... 285
      Layer 클래스 ... 286
      TileSet 클래스 ... 293
      TiledMap 클래스 ... 295
      초기화 ... 297
      맵 파일 파싱 ... 299
      레이어 이미지 생성 ... 311
      레이어 렌더링 ... 312
      타일 정보 얻기 ... 314
   정리 ... 315
   연습 문제 ... 315
Chapter 10 Particle Emitter
   Particle Emitter 프로젝트 ... 319
      Particle System 개요 ... 320
      Particle System 파라미터 ... 321
   Particle의 Life Cycle ... 322
      Particle 생성 ... 323
      Particle 생존 ... 324
      Particle 소멸 ... 325
      다시 태어나는 Particle ... 325
   Particle Emitter 설정 ... 326
   Particle Emitter 클래스 ... 328
      TBXMLParticleAdditions 클래스 ... 328
      ParticleEmitter 클래스 ... 330
   Particle system 즐기기 ... 345
   정리 ... 347
Chapter 11 사운드(Sound)
   사운드 프로젝트 ... 350
   iPhone 사운드 시스템 ... 351
      오디오 세션(Audio Session) ... 351
      음악 재생 ... 353
      사운드 효과 재생 ... 354
      사운드 효과 제작 ... 356
      스테레오와 모노 ... 358
   사운드 매니저 클래스 ... 359
      SoundManager 클래스 ... 360
   사운드 효과 관리 ... 378
      사운드 효과 로드 ... 379
      사운드 효과 재생 ... 382
      사운드 효과 재생 정지 ... 386
      사운드 효과와 듣는 사람 위치 설정 ... 387
   사운드 인터럽트 처리 ... 388
   정리 ... 391
Chapter 12 User Input
   User Input 프로젝트 ... 394
   User Input 소개 ... 396
      터치 이벤트 ... 396
   터치 이벤트 처리 ... 398
      touchesBegan 메소드 ... 400
      touchesMoved 메소드 ... 402
      touchesEnded 메소드 ... 404
   터치 횟수에 따른 처리 ... 405
   가속도 이벤트 ... 407
   정리 ... 409
Chapter 13 Game Interface
   Game Interface 프로젝트 ... 412
   OpenGL ES 인터페이스 ... 413
      인터페이스 렌더링 ... 414
      버튼 영역 설정 ... 417
      터치 처리 ... 418
      화면전환 처리 ... 422
      OpenGL ES 화면 방향 ... 423
   UIKit 인터페이스 ... 427
      인터페이스 생성 ... 428
      인터페이스 연결 ... 431
      UIKit Orientation ... 435
      UIKit 인터페이스 보여주기/숨기기 ... 437
   정리 ... 441
Chapter 14 게임 오브젝트와 엔티티
   게임 오브젝트와 엔티티 프로젝트 ... 444
   게임 오브젝트 ... 445
      AbstractObject 클래스 ... 446
      EnergyObject 클래스 ... 449
   게임 엔티티(Game Entity) ... 458
      AbstractEntity 클래스 ... 460
      인공지능 ... 462
      Player 엔티티 클래스 ... 465
   게임 오브젝트 및 엔티티 저장 ... 476
   정리 ... 479
Chapter 15 충돌 감지(Collision Detection)
   충돌 감지에 대하여 ... 482
   충돌 걸러내기 ... 483
   프레임(Frame) 기반과 시간(Time) 기반 ... 485
   AABB(Axis-Aligned Bounding Boxes) ... 486
   충돌 검사 ... 487
   Collision Map ... 489
   엔티티와 맵 간 충돌 감지 ... 492
   엔티티와 엔티티 간 충돌 감지 ... 493
   정리 ... 495
Chapter 16 끝내기
   카메라 ... 498
   게임 상태 및 설정 저장 ... 501
      게임 상태 저장 ... 501
      게임 상태 읽어오기 ... 503
      게임 설정 저장 ... 505
      게임 설정 읽어오기 ... 506
   점수 저장 ... 507
      점수 추가 ... 510
      최고 점수 저장 ... 511
      최고 점수 읽어오기 ... 512
   성능과 최적화 ... 513
      Instruments 사용하기 ... 515
      Leaks Instrument ... 516
      OpenGL ES Instrument ... 520
      Compiling for Thumb 옵션 ... 522
   베타 테스트 ... 523
      다양한 기기 형태 ... 524
      피드백 ... 526
   정리 ... 527
닫기