목차 일부
Chapter 01 게임 디자인
모든 것을 시작하게 만든 게임 ... 30
그래서, 대단한 아이디어란 게 뭔데? ... 31
iPhone에 적합한 게임 ... 32
스토리 라인 ... 33
이름에 숨겨진 의미 ... 34
게임의 목표 ... 35
게임 플레이 요소 ... 36
시간 ......
더보기
목차 전체
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
더보기 닫기