장바구니 담기 close

장바구니에 상품을 담았습니다.

PYTHON과PYGAME으로게임만들기(그래픽애니메이션사운드프로그래밍가이드)

PYTHON과PYGAME으로게임만들기(그래픽애니메이션사운드프로그래밍가이드)

  • 알 슈베이가르트
  • |
  • 정보문화사
  • |
  • 2014-06-26 출간
  • |
  • 432페이지
  • |
  • ISBN 9788956746159
★★★★★ 평점(10/10) | 리뷰(2)
판매가

23,000원

즉시할인가

20,700

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
20,700

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

목차

저자의 글
책에 관하여

Chapter 01 Python과 Pygame 설치하기
시작하기 전 알아두어야 할 사항
Python 다운로드해서 설치하기
Windows 설치 방법
Max OS X 설치 방법
Ubuntu 및 Linux 설치 방법
Python 시작하기
Pygame 설치하기
책 사용법
소스 코드
그래픽과 사운드 파일 다운로드
라인넘버와 스페이스
자동 줄 바꿈
온라인으로 코드 검사하기
http://invpy.com에서 더 많은 정보 찾아보기

Chapter 02 Pygame의 기본
GUI 대 CLI
Pygame으로 만든 ‘Hello World’ 소스 코드
게임 루프와 게임 스테이트
Pygame.event.Event 객체
Quit 이벤트와 pygame.quit() 함수
픽셀 좌표
함수, 메소드, 생성자 함수(Constructor Function), 모듈 내 함수에 대한 주의사항과 차이점
Surface 객체와 윈도우
색깔
투명색
pygame.Color 객체
Rect 객체
기본 형태 그리기 함수
pygame.PixelArray 객체
pygame.display.update() 함수
애니메이션
초당 프레임과 pygame.time.Clock 객체
pygame.image.load()와 blit()로 이미지 그리기
폰트
안티 앨리어싱
소리 재생하기
요약

Chapter 03 메모리 퍼즐
메모리 퍼즐하기
중첩된 for문
메모리 퍼즐 소스 코드
크레디트와 import 문
매직 넘버는 좋지 않다
assert 문으로 Sanity Checks
숫자가 짝수인지 홀수인지 알아내기
가능한 자주, 빨리 크래시가 일어날수록 좋다
소스 코드 예쁘게 만들기
문자열 대신 상수 변수 사용하기
아이콘이 충분한지 확인하기
Tuple 대 List, Immutable 대 Mutable
아이템이 하나인 튜플은 뒤에 쉼표가 따라와야 한다
리스트와 튜플 사이에 변환하기
Global문 그리고 전역변수가 문제인 이유
데이터 구조와 2D 리스트
게임을 시작하는 애니메이션
게임 루프
이벤트 처리 루프
어느 상자 위에 마우스 커서가 있는지 알아내기
첫 번째 클릭한 상자 처리하기
짝이 맞지 않는 아이콘 처리하기
플레이어가 이긴 경우 처리하기
게임 상태를 화면에 그리기
‘열린 상자’에 대한 데이터 구조 만들기
게임판 데이터 구조 만들기 : 1단계-가능한 모든 아이콘 조합하기
2단계-모든 아이콘을 섞은 다음 추려내기
3단계-게임판에 아이콘 배치하기
2차원 리스트로 가르기
서로 다른 좌표계
픽셀 좌표계에서 게임판 좌표계로 변환하기
아이콘 그리기 그리고 Syntactic Sugar
게임판 아이콘의 형태와 색깔을 얻는 Syntactic Sugar
상자 덮개 그리기
닫히고 열리는 애니메이션 처리하기
전체 게임판 그리기
하이라이트 그리기
‘게임 시작’ 애니메이션
상자 그룹을 보여주고 닫기
‘게임 승리’ 애니메이션
플레이어가 승리했는지 알아내기
왜 main() 함수를 신경 쓰는가
왜 가독성에 신경 쓰는가
요약 그리고 해킹 제안

Chapter 04 슬라이드 퍼즐
슬라이드 퍼즐하기
슬라이드 퍼즐 소스 코드
두 번째 버전과 유사한 첫 번째 버전
버튼 설정하기
단순한 코드로 똑똑해지기
게임 루프
버튼 클릭하기
마우스로 타일 밀기
키보드로 타일 밀기
in 연산자로 ‘이들 중 하나와 일치’ 트릭 쓰기
WASD와 화살표 키
타일 밀기를 실제로 실행하기
IDLE와 Pygame 프로그램 종료하기
특정 이벤트 검사하기, Pygame의 이벤트 큐에 이벤트 포스팅하기
게임판 데이터 구조 만들기
빈 칸 위치는 그때그때 찾아낸다
게임판 데이터 구조를 갱신해서 이동하기
왜 Assertion을 쓰면 안 될까?
무작위적이지 않은 움직임 얻기
타일 좌표를 픽셀 좌표로 변환하기
픽셀 좌표를 게임판 좌표로 변환하기
타일 그리기
화면상에 문자열 보여주기
게임판 그리기
게임판 테두리 그리기
버튼 그리기
타일 슬라이드 애니메이션
copy() Surface 메소드
새 퍼즐 만들기
보드 리셋 애니메이션
시간vs메모리 상쇄 효과
아무도 몇 바이트는 신경 쓰지 않는다
아무도 몇 밀리언 나노세컨드는 신경 쓰지 않는다
요약

Chapter 05 시뮬레이트
시뮬레이트 게임하기
시뮬레이트 소스 코드
일반적인 시작 부분
버튼 설정하기
main() 함수
프로그램에서 사용한 지역변수
테두리 그리기와 입력 처리하기
마우스 클릭 검사하기
키보드 입력 검사하기
게임 루프의 2가지 상태
플레이어가 맞는 버튼을 눌렀는지 알아내기
기준 시간(Epoch time)
화면에 게임판 그리기
기존의 terminate()함수
상수 재활용하기
깜박이는 버튼 애니메이션
버튼 그리기
배경 바뀌는 애니메이션
게임 종료 애니메이션
픽셀 좌표계를 버튼으로 변환하기
암묵적인 것보다 명시적인 것이 낫다

Chapter 06 워미
워미(wormy)
워미 소스 코드
격자
셋업 코드
main() 함수
분리한 runGame() 함수
이벤트 처리

도서소개

이 책은 Pygame 프레임워크(Pygame 라이브러리)와 Python 프로그래밍 언어를 사용하여 그래픽 컴퓨터 게임을 만드는 방법에 대해 다루고 있다. 중급 프로그래머 이상을 대상으로 하고 있지만, Python은 배우기에 그리 어렵지 않은 언어이므로 책에 나오는 소스 코드 예제를 천천히 따라해 보면 누구나 쉽게 이해할 수 있다.
“ Python과 Pygame으로 그래픽 게임에 도전해 보자.”
이 책은 Pygame 프레임워크(Pygame 라이브러리)와 Python 프로그래밍 언어를 사용하여 그래픽 컴퓨터 게임을 만드는 방법에 대해 다루고 있다. 중급 프로그래머 이상을 대상으로 하고 있지만, Python은 배우기에 그리 어렵지 않은 언어이므로 책에 나오는 소스 코드 예제를 천천히 따라해 보면 누구나 쉽게 이해할 수 있다.

기존에 출간된 Python 관련 도서들이 대부분 기본 입문 내용이나 웹 프로그래밍 관련 내용들을 다루고 있는데 반해 이 책은 유일하게 Pygame 라이브러리에 대한 소개와 함께 2D 그래픽 게임을 만드는 방법에 대해 설명하고 있다. 저자가 직접 만든 게임 소스 코드 전체를 수록해 놓았으며, 코드가 어떻게 작동하는지 설명하고 있기 때문에 실제 게임 프로그램에서 Pygame 라이브러리를 어떻게 이용하는지 쉽게 알 수 있다.

독자 타깃
■ Python을 이용한 게임 개발을 처음 배우려는 독자
■ Pygame을 배우고 싶어 하는 독자
■ 2D 그래픽 PC 게임 개발에 관심 있는 독자

구성 특징
■ Pygame에 대한 상세한 설명 책의 초반부에 Python과 Pygame의 설치 방법부터 Pygame의 기초적인 내용까지 자세히 설명해 놓았기 때문에 Pygame에 대해 전문적으로 배울 수 있는 기회를 제공하고 있다.

● 이해하기 쉬운 단계별 게임 소스 설명3장부터 5장까지는 간단한 게임 소스 코드를 바탕으로 게임 개발의 기본이 되는 내용들을 독자들이 알기 쉽게 하나하나씩 상세하고 친절하게 알려주고 있다. 6장부터 10장까지는 좀 더 복잡한 게임을 다루면서 다양한 그래픽 효과와 알고리즘에 대해 심도 있게 설명하고 있다. 이 책은 독자의 이해도를 높이기 위해 지루한 이론을 설명하는 대신 예제를 제공하고 소스 코드를 자세하게 설명함으로써 게임 개발 방법을 쉽게 기술하고 있다.

챕터별 요약

Chapter 01. Python과 Pygame 설치하기
Python과 Pygame을 다운로드해서 설치하는 방법을 각각의 운영체제(윈도우/맥/리눅스)에 맞게 자세히 설명하고 있으며 이 책을 보는 방법과 기본적으로 알고 있어야 하는 내용을 다루고 있다.

Chapter 02. Pygame의 기본
이 챕터에서는 Pygame이 제공하는 기본 모듈과 함수에 대해 설명하고 있다. Pygame을 처음 접하는 독자들을 위해 간단한 예제로 함수를 어떻게 사용하고 어떤 역할을 하고 있는지 알아본다.

Chapter 03. 메모리 퍼즐
메모리 퍼즐이라는 비교적 간단한 게임을 통해 게임 개발에 필요한 기본적인 개념들을 설명하고 있다. 메모리 퍼즐이란 상자 안에 어떤 아이콘들이 숨어있었는지 빨리 알아맞히는 게임이다. 중첩된 for 문, 신태틱 슈가, 동일한 프로그램 내에서 서로 다른 좌표계 등에 대해 배울 수 있다.

Chapter 04. 슬라이드 퍼즐
4X4 격자에 15개의 타일로 되어 있는 게임판 위에서 슬라이드 퍼즐을 맞히는 게임을 만드는 방법에 대해 설명하고 있다. 특히 이 챕터에서는 실행 시간과 메모리 사용량의 상관관계에 대해 알아본다.

Chapter 05. 시뮬레이트
시뮬레이트 게임은 화면에 색이 다른 네 개의 버튼이 무작위로 나타나면 그 순서를 기억하고 있다가 맞히는 게임이다. 이 게임을 통해 소스 코드의 가독성에 대해 설명하고 있다.

Chapter 06. 워미
워미 게임은 플레이어가 작은 벌레를 조종해서 화면에 무작위로 나타나는 사과를 먹는 게임이다. 벌레가 사과를 먹으면 벌레가 커지고, 벌레가 벽에 부딪히면 게임이 끝난다. 앞에서 알아봤던 게임보다는 좀 더 복잡한 게임으로 게임 개발에서 많이 쓰이는 충돌 감지에 대해 설명하고 있다.

Chapter 07. 테트로미노
테트로미노 게임은 필자가 테트리스 게임을 모방해 만든 게임으로 소스 코드만 해도 500 라인이 넘을 정도로 복잡하다. 그 만큼 다양한 개발 기법과 함수들이 사용되었으며 그 모든 것을 상세히 설명하고 있다. 또한, 게임 개발자의 아이디어에 대해서도 이야기하고 있다.

Chapter 08. 다람쥐 먹기
다람쥐 먹기 게임에는 처음으로 여러 명의 적이 한꺼번에 나온다. 적을 여러 개 만드는 방법과 각각의 다람쥐가 동일한 값을 가지게 해서 게임 루프에서 여러 다람쥐들을 한 번에 다루기 위한 코드를 설명한다. 그리고 카메라에 대한 개념도 처음 소개한다. 또한 수학 함수인 사인(sine) 함수를 사용해 다람쥐들이 점프할 때 자연스럽게 보이도록 만드는 방법을 설명한다.

Chapter 09. 스타 푸셔
스타 푸셔 게임은 다람쥐 먹기 게임에 비해 한 단계 더 복잡한 게임으로 레벨마다 타일 그래픽으로 서로 다른 세계를 디자인한다. 즉, 여기에서는 단순히 맵 하나를 가지고 전체 게임을 진행하는 것이 아니라 맵을 제작하여 이를 레벨 파일로 사용하는 방법을 설명하고 있다.

Chapter 10. 보너스 게임 4개
이 챕터에서는 4

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.