본문 바로가기

도서 소개

안드로이드 게임 개발의 정석

 

이 책은 현재 절판입니다. 그간 읽어주신 독자들께 감사드립니다.

임 제작의 원리를 쉽게 이해하도록 단계별로 구성했다!

가장 기본적인 Java 문법만 사용하므로 초심자도 부담 없이 시작할 수 있다!

 
출판사 제이펍
지은이 박승제
출판일 2017년 3월 8일
페이지 580쪽
시리즈 I♥Mobile 32 (아이러브모바일 32)
판 형 46배판변형(188*245*27)
제 본 무선(soft cover)
정 가 35,000원
ISBN 979-11-85890-83-8 (93000)
키워드 안드로이드 / 안드로이드 스튜디오 / 모바일 게임 / Java
분 야 게임 프로그래밍 / 모바일 게임
 
관련 사이트
 
관련 포스트
관련 시리즈
 
관련 도서
 
관련 파일 다운로드
 
 
 
 
강의 자료
(교재로 채택하신 분들은 출판사로 메일을 보내주세요) => jeipubmarketer@gmail.com
■ 강의교안(ppt)
■ 본문의 그림과 표
 
샘플 PDF
■ 차례, 시작하며, 1장 '안드로이드 개발환경 구축', 3장 '텍스트 기반 게임'
 
정오표 페이지
 
도서 구매 사이트(가나다순)
 

도서 소개

게임 제작의 원리를 쉽게 이해하도록 단계별로 구성했다!

가장 기본적인 Java 문법만 사용하므로 초심자도 부담 없이 시작할 수 있다!

 

이 책은 초심자에게 게임 개발에 필요한 기초적인 수학 원리와 기본 알고리즘을 이해시킬 목적으로 만들어졌다. 중학생 정도의 수학적인 지식만 있으면 어렵지 않게 이해할 수 있다. 또한, 이 책에서는 프로그래밍 언어의 문법적인 부분을 다루는 것이 아니라, 가장 기본적인 Java 문법만 사용하므로 초심자도 얼마든지 쉽게 배울 수 있다.

 

이 책의 주요 내용

  • 안드로이드 프로그래밍의 기초
  • 텍스트 기반 게임
  • ImageView를 이용한 게임
  • Custom View와 Sprite
  • Canvas와 Bitmap
  • Touch의 판정
  • Class와 ArrayList
  • 이동 방향과 속도
  • Thread와 동기화
  • 애니메이션과 사운드
  • 중력의 처리
  • 목적지 설정
  • Press와 Gesture
  • 충돌의 판정과 처리
  • 배경 화면 스크롤
  • 버튼의 활용
  • 블록 격파 게임
  • 슬라이딩 퍼즐 게임

 

지은이 소개

박승제

여주컴퓨터 학원, 고려컴퓨터 학원 원장과 (주)ITMax 대표이사를 역임했다. 어셈블러와 C, C++, 델파이 등을 이용한 여러 게임과 관리 시스템을 만들었으며, 학생 상벌점 관리 안드로이드용 앱을 비롯한 다수의 모바일 앱을 제작하였다. 안드로이드사이드와 유니티코리아에서 ‘저녁놀’이라 는 필명으로 게임 강좌를 진행했다. 지은 책으로는 《동영상과 함께하는 언리얼 엔진 4 블루프린트 게임 만들기》, 《실전 유니티 3D 입문과 완성》, 《UNITY 3D 실전 게임 개발》, 《웹 퍼블리셔를 위한 워드프레스 입문과 완성》, 《실전 앱 프로젝트 안드로이드 게임 개발편》을 비롯해 20여 종이 있으며, 《마이크로소프트웨어》 등의 컴퓨터 전문 월간지에 다양한 글을 기고하였다.

 

차례

1장 안드로이드 개발환경 구축 1

1.1 JDK 설치 3

1.2 안드로이드 스튜디오 설치 5

1.3 안드로이드 SDK 설치 12

1.4 프로젝트 시작 14

1.5 AVD 만들기 17

1.6 안드로이드 스튜디오의 한글 설정 21

1.7 HAXM의 VT 설정 21

더보기

2장 안드로이드 프로그래밍의 기초 25

2.1 안드로이드 프로젝트의 시작 27

2.1.1 새로운 프로젝트 만들기 27

2.1.2 Target Device 설정 28

2.1.3 Activity 추가 29

2.2 안드로이드 스튜디오의 구조 32

2.2.1 안드로이드 스튜디오의 구성 32

2.2.2 안드로이드 프로젝트의 구조 33

2.2.3 레이아웃 에디터의 구성 34

2.3 Layout의 구조 35

2.3.1 content_main.xml의 구조 35

2.3.2 Layout의 작성 규칙 37

2.3.3 Layout의 추가 38

2.3.4 activity_main.xml의 구조 39

2.4 MainActivity의 구조 41

2.5 Widget 다루기 42

2.5.1 위젯 추가와 속성 설정 42

2.5.2 Layout의 표시 46

2.5.3 앱의 타이틀 바꾸기 48

2.5.4 버튼의 이벤트 처리 50

2.5.5 EditText 다루기 51

2.5.6 Button의 OnClickListener 56

2.5.7 View의 EditText를 변수에 저장 59

2.5.8 클릭한 버튼의 식별 60

 

3장 텍스트 기반 게임 63

3.1 숫자 맞추기 65

3.1.1 게임 제작의 목적 65

3.1.2 게임의 처리 조건 65

3.1.3 View Design 65

3.1.4 난수 만들기 67

3.1.5 MainActivity class의 구성 68

3.1.6 전역 변수 만들기 69

3.1.7 Activity의 초기화 부분 70

3.1.8 Button의 Listener 작성 71

3.1.9 게임 결과 판정 72

3.2 제비뽑기 74

3.2.1 게임 제작의 목적 74

3.2.2 게임의 처리 조건 74

3.2.3 View Design 74

3.2.4 버튼에 tag 달기 75

3.2.5 버튼의 Listener 할당하기 76

3.2.6 프로그램의 종료 79

 

4장 ImageView를 이용한 게임 81

4.1 윷놀이 83

4.1.1 게임 제작의 목적 83

4.1.2 게임의 처리 조건 83

4.1.3 윷놀이의 기본 개념 84

4.1.4 프로젝트에 이미지 추가 84

4.1.5 View Design 85

4.1.6 배열 만들기 87

4.1.7 난수의 발생 빈도 조절 89

4.2 가위바위보 게임 90

4.2.1 게임 제작의 목적 91

4.2.2 게임의 처리 조건 91

4.2.3 프로젝트에 이미지 추가 91

4.2.4 View Design 92

4.2.5 전역 변수 만들기 92

4.2.6 게임 초기화 93

4.2.7 Option Menu 사용하기 94

4.2.8 Button의 Listener와 승패 판정 96

4.2.9 이미지 뒤집기 97

 

5장 Custom View와 Sprite 99

5.1 Custom View 101

5.1.1 Custom View 만들기 101

5.1.2 Custom View의 생성자 104

5.1.3 GameView의 호출 105

5.1.4 GameView의 작업 영역 구분 108

5.1.5 Custom View의 크기 구하기 109

5.2 Sprite의 출력 112

5.3 Sprite의 이동 116

5.3.1 Handler 사용하기 116

5.3.2 Back Key로 종료하기 119

5.3.3 벽과의 충돌 탐지 119

5.3.4 토끼의 애니메이션 120

5.4 Touch로 Sprite 제어 122

5.4.1 onTouchEvent() 함수 추가 122

5.4.2 터치 위치로 토끼 이동 123

5.4.3 Touch Move로 이동 방향 바꾸기 124

5.4.4 전체 화면 사용하기 125

5.4.5 Custom View의 제어 126

5.4.6 단말기의 방향 설정 130

 

6장 Canvas와 Bitmap 133

6.1 Canvas 다루기 135

6.1.1 Canvas의 주요 함수 135

6.1.2 Canvas 변형 함수 136

6.2 Bitmap의 회전 141

6.3 아날로그 시계 145

6.4 오뚝이 151

 

7장 Touch의 판정 157

7.1 사각형 영역의 판정 159

7.1.1 기본 골격 만들기 160

7.1.2 Log 출력 162

7.1.3 터치 판정 영역 만들기 163

7.1.4 점수 판정 164

7.1.5 BulletHole Class 만들기 164

7.1.6 ArrayList 만들기 165

7.1.7 Touch Event 만들기 165

7.1.8 ArrayList 출력 166

7.2 원의 내부 판정 167

7.2.1 원의 공식으로 판정하기 167

7.2.2 Floating Action Button으로 게임 초기화 169

7.3 부채꼴 영역의 판정 170

7.4 다각형 과녁의 판정 173

7.4.1 다각형 내부 판정 174

7.4.2 정다각형 꼭짓점의 좌표 176

7.4.3 다각형 내부와 삼각형 영역 판정 177

 

8장 Class와 ArrayList 183

8.1 Class 185

8.1.1 Class의 사용 목적 185

8.1.2 Class의 구성 186

8.2 ArrayList 187

8.3 Object의 동적 생성 188

8.3.1 Bubble class 189

8.3.2 GameView 192

8.3.3 Touch Event와 Handler 194

8.3.4 MainActivity 195

8.3.5 Layout 196

 

9장 이동 방향과 속도 197

9.1 FPS와 Delta Time 199

9.1.1 FPS 199

9.1.2 Delta Time 199

9.2 이동 방향과 속도 200

9.2.1 Bubble Class 200

9.2.2 GameView의 처리 204

9.2.3 잠재적인 위험 요소 제거 207

9.3 파편 만들기 210

9.3.1 Time Class 만들기 211

9.3.2 SmallBubble Class 212

9.3.3 GameView의 ArrayList 214

9.3.4 Bubble Class 215

9.3.5 GameView 217

 

10장 Thread와 동기화 219

10.1 Thread 221

10.1.1 Process와 Thread 221

10.1.2 Thread 만들기 222

10.1.3 Thread의 인스턴스와 실행 222

10.1.4 Thread에 의한 반복 처리 223

10.1.5 Thread에 의한 에러 225

10.1.6 Thread의 동기화 226

10.1.7 Thread의 지연 229

10.1.8 Thread Safe ArrayList 230

10.1.9 Thread의 완전 종료 231

 

11장 애니메이션과 사운드 235

11.1 애니메이션 237

11.2 사운드 238

11.2.1 프로젝트에 Audio 파일 추가 238

11.2.2 MediaPlayer 239

11.2.3 SoundPool 239

11.3 참새 사냥 242

11.3.1 참새의 애니메이션 243

11.3.2 참새의 Collision 설정 247

11.3.3 GameView 248

11.4 공용 리소스 만들기 255

 

12장 중력의 처리 259

12.1 자유 낙하와 반사 261

12.1.1 중력 가속도 261

12.1.2 공용 리소스 만들기 262

12.1.3 Ball Class 263

12.1.4 GameView 265

12.2 포물선 운동 269

12.2.1 포물선 운동의 방정식 269

12.2.2 Rocket Class 270

12.2.3 GameView 273

12.2.4 단말기의 해상도와 Density 276

12.2.5 비트맵 이미지의 Density 설정 277

12.3 걷기와 Jump 279

12.3.1 Boy Class 280

12.3.2 GameView 286

 

13장 목적지 설정 289

13.1 목적지에서 정지 291

13.1.1 TouchMove의 처리 291

13.1.2 TouchMove로 이동하기 293

13.1.3 Butterfly Class 296

13.1.4 나비의 생성과 이동 302

13.2 목적지와 선형 보간 304

13.2.1 선형 보간 305

13.2.2 공용 함수 Class 만들기 306

13.2.3 공용 리소스 만들기 310

13.2.4 Laser Class 312

13.2.5 X-Wing Class 313

13.2.6 GameView 316

13.2.7 Floating Action Button 제거 319

13.3 가속과 감속 320

13.3.1 가감속과 선형 보간 321

13.3.2 공용 리소스 Class 322

13.3.3 Laser 만들기 323

13.3.4 우주선 만들기 324

13.3.5 GameView 327

 

14장 Press와 Gesture 331

14.1 Press로 이동 및 발사 333

14.1.1 공용 리소스 Class 334

14.1.2 Poison 만들기 335

14.1.3 거미 만들기 336

14.1.4 GameView 340

14.2 Double Tab으로 점프 343

14.2.1 공용 리소스 만들기 344

14.2.2 Boy Class 345

14.2.3 Gesture Class 349

14.2.4 GameView 351

 

15장 충돌의 판정과 처리 355

15.1 충돌의 판정 357

15.1.1 사각형과 사각형의 충돌 357

15.1.2 원형과 원형의 충돌 358

15.1.3 사각형과 원형의 충돌 358

15.2 충돌과 상태의 변화 359

15.2.1 Ball Class 360

15.2.2 GameView 362

15.2.3 상태의 전이 365

15.2.4 GameView와 Ball의 처리 373

15.3 충돌과 득점 375

15.3.1 충돌의 판정과 처리 376

15.3.2 프로젝트의 기본 구조 376

15.3.3 공용 리소스 만들기 377

15.3.4 나비 만들기 380

15.3.5 GameView 383

15.3.6 독액 만들기 387

15.3.7 거미 만들기 388

15.3.8 GameView의 처리 391

15.4 충돌과 폭파 393

15.4.1 프로젝트의 기본 구조 394

15.4.2 공용 리소스 만들기 395

15.4.3 MathF Class에 함수 추가 399

15.4.4 X-Wing 만들기 399

15.4.5 GameView 402

15.4.6 Laser 만들기 405

15.4.7 Alien 만들기 409

15.4.8 어뢰 만들기 414

15.4.9 폭파 불꽃 만들기 418

 

16장 배경 화면 스크롤 423

16.1 배경 하늘과 구름 425

16.1.1 하늘과 초원 만들기 425

16.1.2 구름 만들기 429

16.1.3 토끼 만들기 432

16.2 배경 이미지의 스크롤 436

16.2.1 배경 화면의 스크롤 437

16.2.2 GameView 440

16.2.3 X-Wing 442

16.3 근경과 원경의 스크롤 445

16.3.1 닌자 만들기 446

16.3.2 GameView 448

16.3.3 배경 만들기 451

 

17장 버튼의 활용 457

17.1 버튼과 멀티 터치 459

17.1.1 멀티 터치의 처리 459

17.1.2 Button Class 460

17.2 버튼으로 제어하기 462

17.2.1 버튼 만들기 463

17.2.2 닌자 만들기 467

17.2.3 배경 하늘 만들기 471

17.2.4 배경 만들기 474

 

18장 블록 격파 477

18.1 게임의 개요 479

18.1.1 게임의 요구 사항 480

18.1.2 프로젝트의 구성 480

18.2 기본적인 구성 481

18.2.1 게임의 기본 설정 481

18.2.2 게임의 환경 설정 481

18.2.3 공용 리소스 만들기 482

18.2.4 단말기의 진동 설정 485

18.2.5 GameView 485

18.2.6 패들 만들기 490

18.2.7 공 만들기 494

18.2.8 블록 만들기 499

18.3 Stage 만들기 503

18.3.1 Map Design 503

18.3.2 Map 만들기 504

18.3.3 Stage 만들기 505

18.4 Game Over의 처리 508

18.5 게임 시작 화면 만들기 510

18.5.1 View Design 511

18.5.2 게임의 시작과 종료 515

18.5.3 배경 음악의 On/Off 516

18.5.4 게임의 환경 설정 517

 

19장 슬라이딩 퍼즐 519

19.1 게임의 개요 521

19.1.1 게임의 요구 사항 521

19.1.2 프로젝트의 구성 522

19.2 기본적인 구성 522

19.2.1 게임의 기본 설정 523

19.2.2 게임의 환경 설정 523

19.2.3 View의 구성 524

19.2.4 공용 리소스 만들기 524

19.2.5 타일 만들기 527

19.3 게임의 세부 설정 530

19.3.1 타일 배열 530

19.3.2 타일 섞기와 치환 530

19.3.3 타일의 이동 531

19.3.4 Board 만들기 532

19.3.5 GameView 만들기 535

19.4 타일의 터치와 이동 538

19.4.1 터치한 타일 찾기 539

19.4.2 타일의 이동 540

19.4.3 Touch Event의 처리 542

19.5 진행 시간 표시와 Stage Clear 544

19.5.1 진행 시간 표시 544

19.5.2 Stage Clear 판정 546

19.5.3 Sound와 진동 설정 548

19.6 시작 화면 만들기 549

19.6.1 View Design 549

19.6.2 StartActivity 만들기 553

 

찾아보기 558