간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (29,930원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (22,050원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (25,200원)
(최대할인 4만원 / 2만원 이상 결제)
Close

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

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 46
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 박승제
  • 출판사 : 제이펍
  • 발행 : 2017년 03월 07일
  • 쪽수 : 563
  • ISBN : 9791185890838
정가

35,000원

  • 31,500 (10%할인)

    1,750P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(8)

  • 사은품

책소개

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

출판사 서평

게임 제작의 원리를 쉽게 이해하도록 단계별로 구성했다!
가장 기본적인 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
목적지 설정 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

본문중에서

우리의 레이아웃에는 이름과 비밀번호를 입력받기 위한 EditText가 두 개 있다. 사용자가 이름과 비밀번호를 입력하고 [확인] 버튼을 누르면 입력한 내용을 스낵바에 표시할 것이다. 이렇게 하려면 EditText를 미리 변수로 만들어 둘 필요가 있다. EditText 위젯을 저장할 변수는 버튼의 Listener에서도 통용되어야 하므로 Activity 전체에 통용되는 전역 변수로 작성한다. 전역 변수는 함수보다 먼저 선언해야 하므로 Activity의 첫 부분에 다음의 내용을 입력한다.
_59쪽

Java는 초기화하지 않은 변수는 변수의 타입으로 초기화한다. int나 double 등 수치 변수는 0, boolean은 false, String은 “ ”(null string)이 된다. (...) null은 ‘없음’을 의미하는데, 변수의 값이 없는 것인지 아니면 메모리에 변수를 할당하지 않은 상태인지를 구분할 수 없는 아주 애매한 것이다. 여담이지만 null이라는 개념을 처음 만든 토니 호어(Tony Hoare, Quick Sort를 발명한 사람)가 ‘10억(billion) 달러짜리 실수였다’라고 회고한 적 있다. null을 사용하는 프로그래밍 언어(Java 포함)에서 null과 관련된 버그가 엄청나게 많기 때문이다.
_69쪽

안드로이드 기반의 게임을 만들 때 염두에 두어야 하는 것은, 사용자의 단말기의 종류가 제각각이라는 것이다. 따라서 스프라이트나 오브젝트에 절대 좌표를 사용하면 단말기에 따라 표시 위치가 달라진다는 것을 명심해야 한다. 따라서 절대 좌표의 사용은 최대한 자제하고, 대신 스프라이트의 위치 등은 항상 화면의 비율과 자신의 크기 등을 기준으로 처리하는 것이 원칙이다.
_120쪽

사용자가 과녁을 터치하면 그 위치에 총알구멍을 표시한다. 사용자가 과녁을 여러 번 터치하면 그만큼 총알구멍을 만들어야 하므로, 총알구멍을 별도의 Class로 구성한다. 이 Class는 터치 좌표와 총알구멍 이미지만 저장하고, 화면 출력은 onDraw()에서 할 것이다. 총알구멍 Class는 별도의 파일(외부 Class)로 만들어도 되고, GameView에 포함된 Inner Class로 만들어도 된다.
_164쪽

Java의 switch()문은 조건에 맞는 처리를 한 후 break문이 없으면 자동으로 그다음 문장을 수행한다(Falling Down). Falling Down은 다음 조건의 코드를 자동 수행하므로 중복을 줄여서 간결한 구조를 만들 수 있지만, break가 없다는 것을 주석 등으로 명시하지 않으면 원래 break가 없는 것인지 개발자가 실수로 누락한 것인지를 알 수가 없다. 그러므로 break가 없는 경우에는 그 이유를 주석으로 명확하게 표시해 두면, 프로그램을 디버깅할 때나 다른 사람이 코드를 읽을 때 도움이 될 것이다.
_347쪽

관련이미지

저자소개

생년월일 -
출생지 -
출간도서 0종
판매수 0권

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

펼쳐보기

리뷰

0.0 (총 0건)

구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

리뷰쓰기

기대평

작성시 유의사항

평점
0/200자
등록하기

기대평

10.0

판매자정보

  • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

판매자

(주)교보문고

상호

(주)교보문고

사업자 종류

법인사업자

사업자번호

102-81-11670

연락처

1544-1900

이메일

callcenter@kyobobook.co.kr

통신판매 신고 번호

01-0653

영업소재지

서울특별시 종로구 종로 1(종로1가,교보빌딩)

교환/환불

반품/교환 방법

‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

반품/교환가능 기간

변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

반품/교환 비용

변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

반품/교환 불가 사유

·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
(단지 확인을 위한 포장 훼손은 제외)

·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등

·복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

상품 품절

공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

소비자 피해보상
환불지연에 따른 배상

·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

배송안내

  • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

  • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

  • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

  • 배송비는 업체 배송비 정책에 따릅니다.

  • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용