책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788931481693
· 쪽수 : 296쪽
· 출판일 : 2025-12-05
책 소개
목차
[Chapter 1] 게임 제작의 구조에 대해 알아보자
1-1 게임의 정체를 알아보자
(1) 컴퓨터 기기는 프로그램으로 움직인다
(2) 게임 내부는 어떻게 되어 있을까?
(3) 프로그램이란?
(4) 프로그램의 지시를 CPU가 이해한다
(5) 컴퓨터의 기본 기능 '입력, 연산, 출력'
(6) 컴퓨터의 또 하나의 중요한 기능 - 기억
1-2 게임 제작과 수학의 관계를 알아보자
(1) 체력을 줄이거나 늘리는 변수
(2) 적이 쫓아온다 - 물체는 어디에 있는가? (좌표)
(3) 가까이 있을까? 멀리 있을까? - 게임 속에 펼쳐진 세계 (2차원 평면)
(4) 수학의 다양한 지식을 활용하자
1-3 프로그래밍 준비
(1) 확장자를 표시하자
(2) 작업 폴더를 만들자
1-4 Python 설치
(1) Windows PC에 설치하는 방법
(2) Mac에 설치하는 방법
1-5 IDLE을 사용해 보자 ① - 셸 윈도
(1) IDLE이란?
(2) IDLE을 실행해 보자
(3) IDLE로 계산이나 달력을 표시해 보자
1-6 IDLE을 사용해 보자 ② - 에디터 윈도
(1) 에디터 윈도 실행하기
(2) 프로그램 입력하기
(3) 프로그램 저장하기
(4) 프로그램 실행하기
(5) 프로그램 입력 방법 정리
?
[Chapter 2] 프로그래밍 기초 지식
2-1 이 장에서 배울 내용
2-2 입력과 출력
(1) 컴퓨터의 기본 기능
(2) print() 사용법
(3) 계산식의 값을 출력하자
(4) input() 사용법
(5) 주석
2-3 변수
(1) 변수란?
(2) 대입연산자
(3) 변수명 붙이기
(4) 변수 값을 계산식으로 바꾸자
(5) 연산자
(6) 타입(데이터 타입)
(7) 문자열과 숫자는 종류가 다른 데이터
(8) 형변환
2-4 배열
(1) Python의 리스트(데이터를 담는 상자)
(2) 배열이란?
(3) 배열 선언
(4) 배열을 사용한 프로그래밍
(5) 2차원 배열
2-5 조건 분기
(1) 조건 분기
(2) if의 3가지 작성법
(3) if 사용법
(4) 들여쓰기
(5) if를 사용한 프로그래밍
(6) 조건식
(7) True와 False
(8) if~else 사용법
(9) if~elif~else 사용법
(10) and 와 or (논리연산자)
2-6 반복
(1) 반복
(2) 2종류의 반복 명령
(3) for의 사용법
(4) range()로 범위를 지정하기
(5) for를 사용한 프로그래밍 - 기본
(6) for를 사용한 프로그래밍 - range()를 통한 범위 지정
(7) 값을 줄이는 반복
(8) break와 continue
(9) while의 사용법
2-7 함수
(1) 게임 속 함수
(2) 함수의 개념
(3) 함수를 정의하는 방법
(4) 매개 변수도 리턴 값도 없는 함수
(5) 매개 변수가 있고 리턴 값이 없는 함수
(6) 리턴 값을 가진 함수
(7) 전역 변수와 지역 변수, 변수의 유효 범위
2장 총 정리
[Chapter 3] 그래픽을 표시하자
3-1 이 장에서 배울 내용
3-2 tkinter로 윈도를 표시해 보자
(1) 게임 제작에 필수적인 윈도
(2) 모듈
(3) Python으로 윈도를 표시하자
(4) 타이틀과 윈도의 크기를 지정하자
3-3 캔버스에 선을 그어 보자
(1) 캔버스란?
(2) 컴퓨터의 좌표에 대해 알아보자
(3) 캔버스를 사용해 보자
(4) 축이 되는 선을 그어 보자
3-4 다양한 도형을 그려 보자
(1) 도형을 표시하는 명령
(2) 도형을 표시하는 명령을 사용해 보자
(3) 캔버스에 문자열을 표시해 보자
3-5 이미지를 표시해 보자
(1) 이미지 파일 준비
(2) 프로그램 확인
(3) PhotoImage() - 이미지 불러오기
(4) create_image() - 이미지 표시
(5) 내가 가진 이미지 파일을 표시해 보자
3-6 배열로 색을 다루어 보자
(1) 색의 문자열을 배열에 대입해 보자
3-7 2차원 배열을 사용해 보자
(1) 2차원 배열로 색을 정의해 보자
(2) for의 중첩 반복문
[Chapter 4] 게임 제작을 위한 기초 지식
4-1 실시간 처리란?
(1) Python으로 실시간 처리하기
(2) 수를 세어 보자
(3) 전역 변수 선언
(4) 문자열 표시하기
(5) delete("all")이 필요한 또 하나의 이유
(6) 실시간 처리의 과정
(7) 전역 변수와 지역 변수
4-2 마우스의 움직임을 가져오자
(1) 이벤트란?
(2) 이벤트가 발생한 사실을 알아내자
(3) bind()의 사용법
(4) 마우스 커서 좌표를 알아내는 프로그램
(5) format()의 사용법
(6) 마우스를 클릭한 사실을 알아내는 방법은?
4-3 마우스로 도형을 움직여 보자
(1) 어떻게 도형을 움직일까?
(2) 원이 커서를 따라가는 프로그램
(3) 마우스 커서를 움직였을 때 불러오는 함수
(4) 실시간 처리를 하는 함수
(5) 좌표 계산
(6) resizable() 명령
4-4 입력된 키 값을 가져오자
(1) 어떤 키를 눌렀는지 알아보자
(2) 키 값을 표시하는 프로그램
(3) 키 코드와 심볼
4-5 숫자 키로 색을 표시해 보자
(1) 어떤 프로그램을 만드는 걸까?
(2) 프로그램 확인
(3) 키가 눌렸을 때 배경색 바꾸기
(4) 문자열의 대소 관계
(5) and 사용법
(6) 문자열을 숫자로 변환하기
4-6 충돌 판정을 계산해 보자 ①-원을 이용한 계산 방법
(1) 충돌 판정
(2) 2개의 원의 거리를 구하는 식
(3) 수학식을 프로그램으로 입력하자
(4) 프로그램 확인
(5) 태그
4-7 충돌 판정을 계산해 보자 ②-사각형을 이용한 계산 방법
(1) 사각형을 이용한 충돌 판정
(2) 사각형이 겹치는 조건을 알아보자
(3) x축 방향의 거리와 y축 방향의 거리를 구해 보자
(4) 사각형이 겹치는 조건을 식으로 표현하자
(5) 절댓값을 사용해 보자
(6) 수식을 프로그램으로 입력하자
(7) 프로그램 확인
(8) 사각형을 표시하는 방법
(9) 마우스로 사각형을 움직이는 처리
(10) 충돌 판정을 하는 if문
[Chapter 5] 두더지 잡기를 만들어 보자
5-1 이 장에서 만들 게임
(1) 두더지 잡기란?
(2) 두더지 잡기를 만드는 이유
(3) 이 장에서 만들 게임의 규칙
(4) 사용할 이미지 파일
(5) 어떤 순서로 완성시킬까?
5-2 Python에서 난수를 사용해 보자
(1) random 모듈을 사용하자
(2) 난수를 발생시키는 명령
(3) 프로그램 확인
(4) 난수의 기본값
5-3 STEP 1 이미지를 불러와서 표시해 보자
(1) 이미지 파일을 불러와서 표시하기
5-4 STEP 2 배열로 5개의 구덩이를 관리하자
(1) 배열 사용하기
(2) 프로그램 확인
(3) 배열에 대입하는 값을 바꿔 보자
5-5 STEP 3 실시간 처리로 두더지가 나타나게 해 보자
(1) 실시간 처리를 추가하자
(2) 프로그램 확인
5-6 STEP 4 키 입력으로 두더지를 때려 보자
(1) 키 입력 추가
(2) 프로그램 확인
(3) 변수 key에 키 값을 대입하자
(4) 얼굴을 내민 두더지를 때려 보자
(5) 뿅망치로 때린 두더지를 구덩이로 돌아가게 해 보자
(6) 키 값의 해제
5-7 STEP 5 타이틀 화면과 게임 오버 화면을 만들어 게임을 완성시키자
(1) 화면 전환
(2) 두더지 잡기의 화면 전환
(3) 씬을 관리하는 변수를 사용해 보자
(4) 완성된 프로그램 확인
(5) 게임을 개조해 보자!
[Chapter 6] 테니스 게임을 만들어 보자
6-1 이 장에서 만들 게임
(1) 테니스 게임이란?
(2) 테니스 게임을 만드는 이유
(3) 이 장에서 만들 게임의 규칙
(4) 사용하는 이미지 파일
(5) 어떤 순서로 완성시킬까?
6-2 벡터를 배워 보자
(1) 벡터는 크기와 방향을 가진다
(2) 속력과 속도
(3) 프로그램으로 물체의 움직임을 계산하는 방법은?
(4) 공을 움직이기 위한 변수
6-3 STEP 1 배경, 공, 바를 표시해 보자
(1) 표시할 것과 표시 위치를 다루는 변수
(2) 이미지와 도형을 표시해서 게임 화면을 만들자
(3) 변수에 초기 값을 대입하자
(4) int()의 기능
(5) 이미지 불러오기와 표시
6-4 STEP 2 공이 자동으로 움직이게 해 보자
(1) 공의 속력을 대입할 변수
(2) 좌표를 변화시키는 계산
(3) 화면 끝에서 튕기게 해 보자
(4) 공이 자동으로 움직이는 프로그램
(5) 화면 끝에서 튕기게 하는 방법
(6) 전역 선언을 잊어버리지 말자
(7) 계산과 표시를 실시간으로 반복하자
(8) 물체의 운동을 표현하는 알고리즘
6-5 STEP 3 마우스의 움직임에 맞춰 바를 움직이게 해 보자
(1) 마우스 이벤트 추가
(2) 바의 좌표를 어떻게 변화시킬까?
(3) 바를 움직이는 프로그램 확인
6-6 STEP 4 바로 공이 튕기도록 만들어 보자
(1) 충돌 판정
(2) 원과 사각형의 충돌을 판정해 보자
(3) 공과 바의 충돌 판정 확인
6-7 STEP 5 점수와 하이스코어를 계산해 보자
(1) 변수에 점수를 대입하고 문자열을 표시하자
(2) 프로그램 확인
(3) text() 함수의 구조
6-8 STEP 6 타이틀 화면과 게임 오버 화면을 넣어 게임을 완성시키자
(1) 화면 전환을 관리하는 변수
(2) 완성된 프로그램 확인
(3) click() 함수
(4) 게임을 개조해 보자!
[Chapter 7] 레이싱 게임을 만들어 보자
7-1 이 장에서 만들 게임
(1) 레이싱 게임이란?
(2) 레이싱 게임을 만드는 이유
(3) 이 장에서 만들 게임의 규칙
(4) 사용하는 이미지 파일
(5) 어떤 순서로 완성시킬까?
7-2 STEP 1 배경을 스크롤하자
(1) 배경 이미지
(2) 화면을 스크롤하는 방법
(3) 배경의 스크롤 처리 확인
(4) 계속 사용하는 값을 상수로 정의하기
(5) 실시간 계산과 이미지 표시
(6) bg_y의 계산을 1줄로 입력하기
7-3 STEP 2 플레이어의 차를 조작할 수 있게 해 보자
(1) 차의 좌표를 대입할 변수
(2) 마우스를 움직였을 때 차를 이동하기
(3) 차를 움직이는 프로그램 확인
(4) 마우스 커서를 움직였을 때 좌표를 변화시키기
(5) 선분의 내분점을 구하는 식
(6) 수식을 프로그램의 식으로 만들자
(7) 마우스 커서의 좌표를 직접 대입하면…
7-4 STEP 3 적측 차량을 1대 움직여 보자
(1) 적측 차량의 좌표를 대입할 변수
(2) 적측 차량을 움직이는 프로그램의 확인
(3) 적측 차량을 움직이는 처리
7-5 STEP 4 플레이어와 적측 차량이 충돌했는지 확인해 보자
(1) 충돌 판정
(2) 프로그램 확인
(3) 충돌 판정 범위
7-6 STEP 5 적측 차량을 여러 대 움직여 보자
(1) 배열을 사용해 보자
(2) 프로그램 확인
(3) for문으로 반복해서 배열의 값을 변경하기
(4) 차의 초기 좌표를 대입하는 함수
7-7 STEP 6 타이틀 화면과 게임 오버 화면을 넣어 게임을 완성시키자
(1) 화면 전환을 관리하는 변수
(2) 점수 계산을 추가해 보자
(3) 완성된 프로그램 확인
(4) 충돌 판정과 게임 오버 화면 전환
(5) click() 함수
(6) 그 외에 추가한 내용
(7) 개조해 보자
[Chapter 8] 슈팅 게임으로 복습해 보자
8-1 이 장에서 만들 프로그램과 복습할 내용
(1) 슈팅 게임이란?
(2) 실행해 보자
(3) 사용할 이미지 파일
(4) 복습할 내용
8-2 프로그램 내용을 살펴보자
(1) galaxy_defender.py 확인
(2) 기초 지식 없이는 소프트웨어를 만들 수 없다
8-3 프로그램을 전체적으로 뜯어 보자
(1) 동작 순서
(2) 변수와 배열
(3) 정의한 함수
8-4 동작의 자세한 내용을 이해해 보자
(1) 수학 계산
(2) 2차원 배열로 적을 관리하자
(3) 이미지를 처리하는 법, 이벤트를 가져오는 법, 실시간 처리 복습
(4) 각 함수의 역할
(5) 개조해 보자
[APPENDIX A] 점프 액션 게임으로 배워 보자
A-1 게임 내용
(1) 액션 게임이란?
(2) 실행해 보자
(3) 사용하는 이미지 파일
A-2 프로그램을 살펴보자
(1) help_princess.py 확인하기
A-3 프로그램을 전체적으로 뜯어 보자
(1) 게임 플레이 시의 동작 순서
(2) 변수와 배열
(3) 정의한 함수
A-4 기능을 자세히 이해해 보자 ① 주인공의 움직임
(1) 수학 계산
(2) 주인공의 애니메이션
A-5 기능을 자세히 이해해 보자 ② 바닥과 구멍의 스크롤
(1) 배열을 사용해 바닥을 만들자
(2) 요소의 삭제와 추가를 이용해 바닥을 스크롤하자
(3) 바닥에 구멍을 배치한다
[APPENDIX B] 3D 던전 탐색 프로그램으로 배워 보자
B-1 게임 내용
(1) 3D 게임
(2) 라비린스 익스플로러의 3D 표현 방법
(3) 실행해 보자
B-2 레이캐스팅
(1) 레이캐스팅이란?
(2) 3차원 미로를 만드는 법
B-3 프로그램을 살펴보자
(1) AppendixB 폴더에 있는 py 파일
(2) 프로그램 확인 ①-labyrinth_explorer.py
(3) 프로그램 확인 ②-maze_data1.py
(4) maze_data1.py를 임포트한다
B-4 프로그램을 전체적으로 뜯어 보자
(1) 동작 순서
(2) 변수와 배열
(3) 정의한 함수
(4) 삼각 함수
B-5 동작을 자세히 알아보자
(1) maze_data1.py에서 데이터를 불러온다
(2) maze_data1.py의 함수
(3) labyrinth_explorer.py에서 정의한 함수
B-6 3차원 공간 표현 방법을 이해해 보자
(1) draw_3d_space()를 확인해 보자
(2) draw_3d_space() 함수의 매개 변수
(3) 레이캐스팅 알고리즘
(4) 벽까지의 거리를 구하는 식
(5) 거리로 벽의 높이를 정한다
(6) 벽의 왜곡을 막는 계산을 넣자
책속에서





















