청구할인 안내(인터파크 제휴카드) | 안내
북피니언 롯데카드 30% (최대할인 3만원 / 3만원 이상 결제)
하나SK 북&카드 30% (최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (최대할인 3만원 / 3만원 이상 결제)
Close

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

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

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

35,000원

  • 31,500 (10%할인)

    1,750P (5%적립)

  • (1건)

    29,750원 ~(15%할인)

    [특급]

  • 중고판매

    이 책을 인터파크에
    판매하세요

할인혜택
  • 26,500원 [하나카드] 5만원이상 구매시 5천원 할인!할인쿠폰
적립혜택
배송정보
주문수량
감소 증가

I-Point는 출고완료 후 14일 이내 마이도서에서 직접 받기를 하셔야 합니다. (이후 자동소멸)

  • 이벤트/기획전

  • 연관도서(22)

  • 사은품

책소개

게임 제작의 원리를 쉽게 이해하도록 단계별로 구성했다! 가장 기본적인 Java 문법만 사용하므로 초심자도 부담 없이 시작할 수 있다!

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

출판사 서평

게임 제작의 원리를 쉽게 이해하도록 단계별로 구성했다!
가장 기본적인 Java 문법만 사용하므로 초심자도 부담 없이 시작할 수 있다!


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

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

목차

1장 안드로이드 개발환경 구축
1.1 JDK 설치
1.2 안드로이드 스튜디오 설치
1.3 안드로이드 SDK 설치
1.4 프로젝트 시작
1.5 AVD 만들기
1.6 안드로이드 스튜디오의 한글 설정
1.7 HAXM의 VT 설정

2장 안드로이드 프로그래밍의 기초
2.1 안드로이드 프로젝트의 시작
2.1.1 새로운 프로젝트 만들기
2.1.2 Target Device 설정
2.1.3 Activity 추가
2.2 안드로이드 스튜디오의 구조
2.2.1 안드로이드 스튜디오의 구성
2.2.2 안드로이드 프로젝트의 구조
2.2.3 레이아웃 에디터의 구성
2.3 Layout의 구조
2.3.1 content_main.xml의 구조
2.3.2 Layout의 작성 규칙
2.3.3 Layout의 추가
2.3.4 activity_main.xml의 구조
2.4 MainActivity의 구조
2.5 Widget 다루기
2.5.1 위젯 추가와 속성 설정
2.5.2 Layout의 표시
2.5.3 앱의 타이틀 바꾸기
2.5.4 버튼의 이벤트 처리
2.5.5 EditText 다루기
2.5.6 Button의 OnClickListener
2.5.7 View의 EditText를 변수에 저장
2.5.8 클릭한 버튼의 식별

3장 텍스트 기반 게임
3.1 숫자 맞추기
3.1.1 게임 제작의 목적
3.1.2 게임의 처리 조건
3.1.3 View Design
3.1.4 난수 만들기
3.1.5 MainActivity class의 구성
3.1.6 전역 변수 만들기
3.1.7 Activity의 초기화 부분
3.1.8 Button의 Listener 작성
3.1.9 게임 결과 판정
3.2 제비뽑기
3.2.1 게임 제작의 목적
3.2.2 게임의 처리 조건
3.2.3 View Design
3.2.4 버튼에 tag 달기
3.2.5 버튼의 Listener 할당하기
3.2.6 프로그램의 종료

4장 ImageView를 이용한 게임
4.1 윷놀이
4.1.1 게임 제작의 목적
4.1.2 게임의 처리 조건
4.1.3 윷놀이의 기본 개념
4.1.4 프로젝트에 이미지 추가
4.1.5 View Design
4.1.6 배열 만들기
4.1.7 난수의 발생 빈도 조절
4.2 가위바위보 게임
4.2.1 게임 제작의 목적
4.2.2 게임의 처리 조건
4.2.3 프로젝트에 이미지 추가
4.2.4 View Design
4.2.5 전역 변수 만들기
4.2.6 게임 초기화
4.2.7 Option Menu 사용하기
4.2.8 Button의 Listener와 승패 판정
4.2.9 이미지 뒤집기

5장 Custom View와 Sprite
5.1 Custom View
5.1.1 Custom View 만들기
5.1.2 Custom View의 생성자
5.1.3 GameView의 호출
5.1.4 GameView의 작업 영역 구분
5.1.5 Custom View의 크기 구하기
5.2 Sprite의 출력
5.3 Sprite의 이동
5.3.1 Handler 사용하기
5.3.2 Back Key로 종료하기
5.3.3 벽과의 충돌 탐지
5.3.4 토끼의 애니메이션
5.4 Touch로 Sprite 제어
5.4.1 onTouchEvent() 함수 추가
5.4.2 터치 위치로 토끼 이동
5.4.3 Touch Move로 이동 방향 바꾸기
5.4.4 전체 화면 사용하기
5.4.5 Custom View의 제어
5.4.6 단말기의 방향 설정

6장 Canvas와 Bitmap
6.1 Canvas 다루기
6.1.1 Canvas의 주요 함수
6.1.2 Canvas 변형 함수
6.2 Bitmap의 회전
6.3 아날로그 시계
6.4 오뚝이

7장 Touch의 판정
7.1 사각형 영역의 판정
7.1.1 기본 골격 만들기
7.1.2 Log 출력
7.1.3 터치 판정 영역 만들기
7.1.4 점수 판정
7.1.5 BulletHole Class 만들기
7.1.6 ArrayList 만들기
7.1.7 Touch Event 만들기
7.1.8 ArrayList 출력
7.2 원의 내부 판정
7.2.1 원의 공식으로 판정하기
7.2.2 Floating Action Button으로 게임 초기화
7.3 부채꼴 영역의 판정
7.4 다각형 과녁의 판정
7.4.1 다각형 내부 판정
7.4.2 정다각형 꼭짓점의 좌표
7.4.3 다각형 내부와 삼각형 영역 판정

8장 Class와 ArrayList
8.1 Class
8.1.1 Class의 사용 목적
8.1.2 Class의 구성
8.2 ArrayList
8.3 Object의 동적 생성
8.3.1 Bubble class
8.3.2 GameView
8.3.3 Touch Event와 Handler
8.3.4 MainActivity
8.3.5 Layout

9장 이동 방향과 속도
9.1 FPS와 Delta Time
9.1.1 FPS
9.1.2 Delta Time
9.2 이동 방향과 속도
9.2.1 Bubble Class
9.2.2 GameView의 처리
9.2.3 잠재적인 위험 요소 제거
9.3 파편 만들기
9.3.1 Time Class 만들기
9.3.2 SmallBubble Class
9.3.3 GameView의 ArrayList
9.3.4 Bubble Class
9.3.5 GameView

10장 Thread와 동기화
10.1 Thread
10.1.1 Process와 Thread
10.1.2 Thread 만들기
10.1.3 Thread의 인스턴스와 실행
10.1.4 Thread에 의한 반복 처리
10.1.5 Thread에 의한 에러
10.1.6 Thread의 동기화
10.1.7 Thread의 지연
10.1.8 Thread Safe ArrayList
10.1.9 Thread의 완전 종료

11장 애니메이션과 사운드
11.1 애니메이션
11.2 사운드
11.2.1 프로젝트에 Audio 파일 추가
11.2.2 MediaPlayer
11.2.3 SoundPool
11.3 참새 사냥
11.3.1 참새의 애니메이션
11.3.2 참새의 Collision 설정
11.3.3 GameView
11.4 공용 리소스 만들기

12장 중력의 처리
12.1 자유 낙하와 반사
12.1.1 중력 가속도
12.1.2 공용 리소스 만들기
12.1.3 Ball Class
12.1.4 GameView
12.2 포물선 운동
12.2.1 포물선 운동의 방정식
12.2.2 Rocket Class
12.2.3 GameView
12.2.4 단말기의 해상도와 Density
12.2.5 비트맵 이미지의 Density 설정
12.3 걷기와 Jump
12.3.1 Boy Class
12.3.2 GameView

13장 목적지 설정
13.1 목적지에서 정지
13.1.1 TouchMove의 처리
13.1.2 TouchMove로 이동하기
13.1.3 Butterfly Class
13.1.4 나비의 생성과 이동
13.2 목적지와 선형 보간
13.2.1 선형 보간
13.2.2 공용 함수 Class 만들기
13.2.3 공용 리소스 만들기
13.2.4 Laser Class
13.2.5 X-Wing Class
13.2.6 GameView
13.2.7 Floating Action Button 제거
13.3 가속과 감속
13.3.1 가감속과 선형 보간
13.3.2 공용 리소스 Class
13.3.3 Laser 만들기
13.3.4 우주선 만들기
13.3.5 GameView

14장 Press와 Gesture
14.1 Press로 이동 및 발사
14.1.1 공용 리소스 Class
14.1.2 Poison 만들기
14.1.3 거미 만들기
14.1.4 GameView
14.2 Double Tab으로 점프
14.2.1 공용 리소스 만들기
14.2.2 Boy Class
14.2.3 Gesture Class
14.2.4 GameView

15장 충돌의 판정과 처리
15.1 충돌의 판정
15.1.1 사각형과 사각형의 충돌
15.1.2 원형과 원형의 충돌
15.1.3 사각형과 원형의 충돌
15.2 충돌과 상태의 변화
15.2.1 Ball Class
15.2.2 GameView
15.2.3 상태의 전이
15.2.4 GameView와 Ball의 처리
15.3 충돌과 득점
15.3.1 충돌의 판정과 처리
15.3.2 프로젝트의 기본 구조
15.3.3 공용 리소스 만들기
15.3.4 나비 만들기
15.3.5 GameView
15.3.6 독액 만들기
15.3.7 거미 만들기
15.3.8 GameView의 처리
15.4 충돌과 폭파
15.4.1 프로젝트의 기본 구조
15.4.2 공용 리소스 만들기
15.4.3 MathF Class에 함수 추가
15.4.4 X-Wing 만들기
15.4.5 GameView
15.4.6 Laser 만들기
15.4.7 Alien 만들기
15.4.8 어뢰 만들기
15.4.9 폭파 불꽃 만들기

16장 배경 화면 스크롤
16.1 배경 하늘과 구름
16.1.1 하늘과 초원 만들기
16.1.2 구름 만들기
16.1.3 토끼 만들기
16.2 배경 이미지의 스크롤
16.2.1 배경 화면의 스크롤
16.2.2 GameView
16.2.3 X-Wing
16.3 근경과 원경의 스크롤
16.3.1 닌자 만들기
16.3.2 GameView
16.3.3 배경 만들기

17장 버튼의 활용
17.1 버튼과 멀티 터치
17.1.1 멀티 터치의 처리
17.1.2 Button Class
17.2 버튼으로 제어하기
17.2.1 버튼 만들기
17.2.2 닌자 만들기
17.2.3 배경 하늘 만들기
17.2.4 배경 만들기

18장 블록 격파
18.1 게임의 개요
18.1.1 게임의 요구 사항
18.1.2 프로젝트의 구성
18.2 기본적인 구성
18.2.1 게임의 기본 설정
18.2.2 게임의 환경 설정
18.2.3 공용 리소스 만들기
18.2.4 단말기의 진동 설정
18.2.5 GameView
18.2.6 패들 만들기
18.2.7 공 만들기
18.2.8 블록 만들기
18.3 Stage 만들기
18.3.1 Map Design
18.3.2 Map 만들기
18.3.3 Stage 만들기
18.4 Game Over의 처리
18.5 게임 시작 화면 만들기
18.5.1 View Design
18.5.2 게임의 시작과 종료
18.5.3 배경 음악의 On, Off
18.5.4 게임의 환경 설정

19장 슬라이딩 퍼즐
19.1 게임의 개요
19.1.1 게임의 요구 사항
19.1.2 프로젝트의 구성
19.2 기본적인 구성
19.2.1 게임의 기본 설정
19.2.2 게임의 환경 설정
19.2.3 View의 구성
19.2.4 공용 리소스 만들기
19.2.5 타일 만들기
19.3 게임의 세부 설정
19.3.1 타일 배열
19.3.2 타일 섞기와 치환
19.3.3 타일의 이동
19.3.4 Board 만들기
19.3.5 GameView 만들기
19.4 타일의 터치와 이동
19.4.1 터치한 타일 찾기
19.4.2 타일의 이동
19.4.3 Touch Event의 처리
19.5 진행 시간 표시와 Stage Clear
19.5.1 진행 시간 표시
19.5.2 Stage Clear 판정
19.5.3 Sound와 진동 설정
19.6 시작 화면 만들기
19.6.1 View Design
19.6.2 StartActivity 만들기

찾아보기

본문중에서

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

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

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

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

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

관련이미지

저자소개

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

여주컴퓨터 학원, 고려컴퓨터 학원 원장과 (주)ITMax 대표이사를 역임했다. 어셈블러와 C, C++, 델파이 등을 이용한 여러 게임과 관리 시스템을 만들었으며, 학생 상벌점 관리 안드로이드용 앱을 비롯한 다수의 모바일 앱을 제작하였다. 안드로이드사이드와 유니티코리아에서 '저녁놀'이라 는 필명으로 게임 강좌를 진행했다.
지은 책으로는 [동영상과 함께하는 언리얼 엔진 4 블루프린트 게임 만들기], [실전 유니티 3D 입문과 완성], [UNITY 3D 실전

펼쳐보기

이 상품의 시리즈

I♥Mobile 시리즈(총 32권 / 현재구매 가능도서 23권)

펼쳐보기

리뷰

0.0 (총 0건)

등록된 리뷰중 당선작을 선정하여, 도서상품권을 드립니다.

리뷰쓰기

기대평

작성시 유의사항

평점
0/200자
등록하기

기대평

0.0

교환/환불

교환/환불 방법

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

교환/환불 가능 기간

고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

교환/환불 비용

고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

교환/환불 불가사유

반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

소비자 피해보상

소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

기타

도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

배송안내

  • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

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

  • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

  • 배송비

도서(중고도서 포함) 구매

2,000원 (1만원이상 구매 시 무료배송)

음반/DVD/잡지/만화 구매

2,000원 (2만원이상 구매 시 무료배송)

도서와 음반/DVD/잡지/만화/
중고직배송상품을 함께 구매

2,000원 (1만원이상 구매 시 무료배송)

업체직접배송상품 구매

업체별 상이한 배송비 적용