XNA 4.0 Game Development by Example 한국어판 [마이크로소프트 XNA 4.0 게임 프로그래밍]
- 원서명XNA 4.0 Game Development by Example: Beginner's Guide (ISBN 9781849690669)
- 지은이커트 재거스
- 옮긴이김동훈, 김유나
- ISBN : 9788960772533
- 30,000원
- 2011년 12월 15일 펴냄 (절판)
- 페이퍼백 | 528쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/xna4-game)
XNA 4.0을 이용한 예제 중심의 게임 개발 가이드. XNA를 처음 접하는 독자도 쉽게 따라하고 호기심을 느낄 수 있게 퍼즐 게임, 비행 슈팅 게임, 엑스박스 360 게임패드를 활용한 탱크 게임, 슈퍼마리오 스타일의 플랫폼 게임 등 다양한 장르의 게임을 튜토리얼 형태로 설명한다. 또한 완성된 예제 게임을 자신만의 스타일로 확장하도록 다양한 도전 과제와 배경 지식을 제공한다.
[ 소개 ]
이 책에서는 XNA를 통해 게임을 만드는 데 필요한 개념과 구현 요소를 소개한다. 퍼즐 게임, 비행 슈팅 게임, 엑스박스 360 게임패드를 활용한 탱크 게임, 마리오 스타일의 플랫폼 게임까지 다양한 장르의 예제 게임을 제공하고, 독자의 아이디어와 창의성을 게임에 적용하는 데 필요한 배경 지식과 구현 기술을 소개한다.
[ 이 책에서 다루는 내용 ]
■ XNA 게임 스튜디오 설치와 게임 프로젝트 생성
■ 게임 상태, 재귀 호출, 2D 스프라이트 애니메이션을 이용한 퍼즐 게임 개발
■ 사운드 효과와 충돌, 입자 기반 폭발을 통한 비행 슈팅 게임 개발
■ 타일 맵과 경로 찾기, 다수의 총알을 구현하기 위한 입자 시스템이 적용된 탱크 게임 개발
■ XNA와 윈도우 폼이 결합된 멀티레이어 타일 맵을 지원하는 맵 에디터 개발
■ 맵 에디터와 타일 엔진이 통합된 슈퍼마리오 스타일의 플랫폼 게임 개발
[ 이 책의 특징 ]
■ 필수 노하우에 대한 친절하고 명쾌한 단계적 설명
■ 배운 내용을 바로 응용할 수 있는 경험을 통한 학습
■ 지겹고 뻔한 내용의 과감한 생략
■ 독자의 상상력을 자극하는 생생하고 재미있는 예제
■ 참여를 유도하는 예제와 과제
[ 이 책의 대상 독자 ]
XNA 프레임워크로 게임을 만드는 데 관심 있는 개발자에게 이 책을 추천한다. 또한 이 책은 게임 개발 경험이 없는 개발자도 쉽게 따라올 수 있게 구성했다. 물론 C#에 대한 기본적인 이해와 지식이 있다면 빠르게 배울 수 있지만, 없더라도 시작할 수 있게 책에서 기본 요소를 충분히 설명했다.
[ 이 책의 구성 ]
1장. XNA 게임 스튜디오 소개에서는 XNA 프레임워크의 역사, XNA 설치법, XNA 게임 스튜디오에 대해 알아본다. 1장 후반부에서부터 실습을 시작해 ‘사각형 추적하기’라는 미니 게임을 만든다.
2장. 플러드 컨트롤: 수중 퍼즐 게임에서는 플러드 컨트롤이라는 퍼즐 게임을 소개한다. 이 게임을 통해 XNA 콘텐츠 파이프라인 사용법과 기본적인 게임 상태 처리, 재귀 함수 호출을 통한 점수 계산 방법을 알아본다.
3장. 플러드 컨트롤: 게임 완성도 높이기에서는 미완성인 플러드 컨트롤을 좀 더 다듬어 회전/낙하/페이드 애니메이션 효과와 점수 처리, 텍스트 출력 방법 등을 알아본다.
4장. 아스테로이드 벨트 어설트: 우주 미아에서는 우주 공간을 소재로 슈팅 게임인 아스테로이드 벨트 어설트를 소개한다. 이 게임을 통해 슈팅 게임의 기본기와 입자 시스템을 사용한 전장 움직임, 프레임 기반 스프라이트 애니메이션을 알아본다. 또한 전장에 움직이는 소행성을 추가해 플레이어와 충돌을 처리하고, 적 우주선과의 상호작용을 통해 현실적인 느낌과 재미를 줄 수 있도록 한다.
5장. 아스테로이드 벨트 어설트: 특수 효과에서는 아스테로이드 벨트 어설트에 추가할 효과를 소개한다. 플레이어와 적 비행기, 소행성, 포탄 간의 충돌에 따라 입자 폭발 효과를 추가하고, 사운드를 재생하는 방법을 알아본다.
6장. 로봇 소동: 멀티 축 카오스에서는 탱크 게임을 통해 엑스박스 360의 컨트롤러와 키보드를 통해 플레이어를 움직이고 미사일을 발사하는 게임을 만든다. 타일 기반의 맵과 카메라 클래스를 두어 큰 게임 세계의 화면 출력을 관리하는 방법과, 타일 맵의 벽과 플레이어의 충돌 처리 방법을 알아본다.
7장. 로봇 소동: 많고 많은 탄환에서는 입자 기반 충돌 시스템을 확장해 많은 총탄을 구현하는 방법과, 적 배치, 승리 조건, 무기 업그레이드 시스템 등을 알아본다. 또한 A* 경로 찾기 알고리즘을 구현해 적의 탱크가 플레이어를 추격할 수 있게 한다.
8장. 보석 사냥꾼: 플랫폼 게임 개발 시작에서는 보석 사냥꾼 게임을 통해 점프와 뛰기를 기반으로 한 횡 스크롤 게임 방식을 알아본다. 7장에서 구현한 타일 맵 시스템을 더 발전시켜 멀티레이어를 지원하고, XNA와 윈도우 폼을 엮어 맵 에디터를 만든다. 맵 에디터 프로젝트를 만들면서 여러 프로젝트를 포함하는 솔루션을 구성하는 방법과 게임 라이브러리 프로젝트를 만드는 방법을 알아본다.
9장. 보석 사냥꾼: 게임 완성에서는 8장에서 완성한 맵 에디터 파일을 읽어 들여 실제 게임으로 만들고, 플레이어와 적, 보석 간의 상호작용을 구현한다. 완성된 게임을 만들기 위한 이벤트 처리와 객체지향 구조 설계를 통해 여러분은 XNA 전문가가 될 수 있을 것이다.
(https://github.com/AcornPublishing/xna4-game)
XNA 4.0을 이용한 예제 중심의 게임 개발 가이드. XNA를 처음 접하는 독자도 쉽게 따라하고 호기심을 느낄 수 있게 퍼즐 게임, 비행 슈팅 게임, 엑스박스 360 게임패드를 활용한 탱크 게임, 슈퍼마리오 스타일의 플랫폼 게임 등 다양한 장르의 게임을 튜토리얼 형태로 설명한다. 또한 완성된 예제 게임을 자신만의 스타일로 확장하도록 다양한 도전 과제와 배경 지식을 제공한다.
[ 소개 ]
이 책에서는 XNA를 통해 게임을 만드는 데 필요한 개념과 구현 요소를 소개한다. 퍼즐 게임, 비행 슈팅 게임, 엑스박스 360 게임패드를 활용한 탱크 게임, 마리오 스타일의 플랫폼 게임까지 다양한 장르의 예제 게임을 제공하고, 독자의 아이디어와 창의성을 게임에 적용하는 데 필요한 배경 지식과 구현 기술을 소개한다.
[ 이 책에서 다루는 내용 ]
■ XNA 게임 스튜디오 설치와 게임 프로젝트 생성
■ 게임 상태, 재귀 호출, 2D 스프라이트 애니메이션을 이용한 퍼즐 게임 개발
■ 사운드 효과와 충돌, 입자 기반 폭발을 통한 비행 슈팅 게임 개발
■ 타일 맵과 경로 찾기, 다수의 총알을 구현하기 위한 입자 시스템이 적용된 탱크 게임 개발
■ XNA와 윈도우 폼이 결합된 멀티레이어 타일 맵을 지원하는 맵 에디터 개발
■ 맵 에디터와 타일 엔진이 통합된 슈퍼마리오 스타일의 플랫폼 게임 개발
[ 이 책의 특징 ]
■ 필수 노하우에 대한 친절하고 명쾌한 단계적 설명
■ 배운 내용을 바로 응용할 수 있는 경험을 통한 학습
■ 지겹고 뻔한 내용의 과감한 생략
■ 독자의 상상력을 자극하는 생생하고 재미있는 예제
■ 참여를 유도하는 예제와 과제
[ 이 책의 대상 독자 ]
XNA 프레임워크로 게임을 만드는 데 관심 있는 개발자에게 이 책을 추천한다. 또한 이 책은 게임 개발 경험이 없는 개발자도 쉽게 따라올 수 있게 구성했다. 물론 C#에 대한 기본적인 이해와 지식이 있다면 빠르게 배울 수 있지만, 없더라도 시작할 수 있게 책에서 기본 요소를 충분히 설명했다.
[ 이 책의 구성 ]
1장. XNA 게임 스튜디오 소개에서는 XNA 프레임워크의 역사, XNA 설치법, XNA 게임 스튜디오에 대해 알아본다. 1장 후반부에서부터 실습을 시작해 ‘사각형 추적하기’라는 미니 게임을 만든다.
2장. 플러드 컨트롤: 수중 퍼즐 게임에서는 플러드 컨트롤이라는 퍼즐 게임을 소개한다. 이 게임을 통해 XNA 콘텐츠 파이프라인 사용법과 기본적인 게임 상태 처리, 재귀 함수 호출을 통한 점수 계산 방법을 알아본다.
3장. 플러드 컨트롤: 게임 완성도 높이기에서는 미완성인 플러드 컨트롤을 좀 더 다듬어 회전/낙하/페이드 애니메이션 효과와 점수 처리, 텍스트 출력 방법 등을 알아본다.
4장. 아스테로이드 벨트 어설트: 우주 미아에서는 우주 공간을 소재로 슈팅 게임인 아스테로이드 벨트 어설트를 소개한다. 이 게임을 통해 슈팅 게임의 기본기와 입자 시스템을 사용한 전장 움직임, 프레임 기반 스프라이트 애니메이션을 알아본다. 또한 전장에 움직이는 소행성을 추가해 플레이어와 충돌을 처리하고, 적 우주선과의 상호작용을 통해 현실적인 느낌과 재미를 줄 수 있도록 한다.
5장. 아스테로이드 벨트 어설트: 특수 효과에서는 아스테로이드 벨트 어설트에 추가할 효과를 소개한다. 플레이어와 적 비행기, 소행성, 포탄 간의 충돌에 따라 입자 폭발 효과를 추가하고, 사운드를 재생하는 방법을 알아본다.
6장. 로봇 소동: 멀티 축 카오스에서는 탱크 게임을 통해 엑스박스 360의 컨트롤러와 키보드를 통해 플레이어를 움직이고 미사일을 발사하는 게임을 만든다. 타일 기반의 맵과 카메라 클래스를 두어 큰 게임 세계의 화면 출력을 관리하는 방법과, 타일 맵의 벽과 플레이어의 충돌 처리 방법을 알아본다.
7장. 로봇 소동: 많고 많은 탄환에서는 입자 기반 충돌 시스템을 확장해 많은 총탄을 구현하는 방법과, 적 배치, 승리 조건, 무기 업그레이드 시스템 등을 알아본다. 또한 A* 경로 찾기 알고리즘을 구현해 적의 탱크가 플레이어를 추격할 수 있게 한다.
8장. 보석 사냥꾼: 플랫폼 게임 개발 시작에서는 보석 사냥꾼 게임을 통해 점프와 뛰기를 기반으로 한 횡 스크롤 게임 방식을 알아본다. 7장에서 구현한 타일 맵 시스템을 더 발전시켜 멀티레이어를 지원하고, XNA와 윈도우 폼을 엮어 맵 에디터를 만든다. 맵 에디터 프로젝트를 만들면서 여러 프로젝트를 포함하는 솔루션을 구성하는 방법과 게임 라이브러리 프로젝트를 만드는 방법을 알아본다.
9장. 보석 사냥꾼: 게임 완성에서는 8장에서 완성한 맵 에디터 파일을 읽어 들여 실제 게임으로 만들고, 플레이어와 적, 보석 간의 상호작용을 구현한다. 완성된 게임을 만들기 위한 이벤트 처리와 객체지향 구조 설계를 통해 여러분은 XNA 전문가가 될 수 있을 것이다.
목차
목차
- 1장 XNA 게임 스튜디오 소개
- 예제 게임 소개
- 시스템 요구 사항
- XNA 게임 스튜디오 설치
- 실습 예제 | XNA 게임 스튜디오 설치
- 첫 번째 게임 만들기
- 실습 예제 | 윈도우 게임 프로젝트 만들기
- XNA Game 클래스 분석
- 변수 선언 영역
- 실습 예제 | 클래스 선언 영역에 변수 추가
- Game1 클래스 생성자
- Initialize() 함수
- 실습 예제 | Initialize() 함수 수정
- LoadContent() 함수
- 실습 예제 | squareTexture 만들기
- Update() 함수
- 실습 예제 | Update() 함수 코드 작성
- Draw() 함수
- 실습 예제 | 그리기
- 실습 예제 | 사각형 추적 게임 실행하기
- 변수 선언 영역
- 정리
- 2장 플러드 컨트롤: 수중 퍼즐 게임
- 퍼즐 게임 디자인
- 실습 예제 | 플러드 컨트롤 프로젝트 생성
- 콘텐츠 파이프라인 소개
- 실습 예제 | 텍스처 파일을 메모리에 로드
- 스프라이트와 스프라이트 시트
- 플러드 컨트롤에서 사용된 클래스 분석
- GamePiece 클래스
- GamePiece 클래스 만들기
- 실습 예제 | GamePiece 클래스 생성: 선언 영역
- GamePiece 생성자
- 실습 예제 | GamePiece 생성자 코드 작성
- GamePiece 업데이트
- 실습 예제 | GamePiece 클래스 함수 작성 첫 번째: 속성 업데이트
- 파이프 회전
- 실습 예제 | GamePiece 클래스 함수 작성 두 번째: 회전
- 파이프 커넥터
- 실습 예제 | GamePiece 클래스 함수 작성 세 번째: 연결 함수
- 스프라이트 시트 좌표계
- 실습 예제 | GamePiece 클래스 함수 작성 네 번째: GetSourceRect
- GamePiece 클래스 만들기
- GameBoard 클래스
- 실습 예제 | GameBoard.cs 파일과 클래스 생성
- GameBoard 만들기
- 실습 예제 | GameBoard 초기화
- GamePiece 업데이트
- 실습 예제 | GameBoard 제어
- 공백 채우기
- 실습 예제 | 공백 채우기
- 새로운 파이프 생성
- 실습 예제 | 새로운 파이프 생성
- 물로 채워진 파이프 처리
- 실습 예제 | 물로 채워진 파이프 관리
- 파이프를 통한 물 흐름처리
- 실습 예제 | 파이프 연결 관계 만들기
- 게임 만들기
- 선언 영역
- 실습 예제 | Game1 선언 영역
- 초기화: Initialize() 함수
- 실습 예제 | Initialize() 함수 업데이트
- Draw() 함수: 타이틀 화면
- 실습 예제 | 타이틀 화면 그리기
- Draw() 함수: 게임 플레이 화면
- 실습 예제 | 플레이 화면 그리기
- 점수 관리
- 실습 예제 | 연결된 파이프 개수에 따른 점수 계산
- 입력 처리
- 실습 예제 | 마우스 입력 처리
- 플레이 가능하게 만들기
- 실습 예제 | 플레이 가능하게 만들기
- 선언 영역
- 게임 실행
- 정리
- 퍼즐 게임 디자인
- 3장 플러드 컨트롤: 게임 완성도 높이기
- 파이프 애니메이션
- 파이프 애니메이션을 위한 클래스
- 실습 예제 | 파이프 회전
- 실습 예제 | 떨어지는 파이프 애니메이션
- 실습 예제 | 사라지는 파이프 애니메이션
- 파이프 애니메이션 관리
- 실습 예제 | 파이프 애니메이션 지원을 위한 GameBoard 클래스 수정
- 페이드 애니메이션
- 실습 예제 | 페이드 애니메이션 객체 추가
- 낙하 애니메이션
- 실습 예제 | 낙하 애니메이션 객체 추가
- 회전 애니메이션
- 실습 예제 | 회전 애니메이션 객체 추가
- UpdateAnimatedPieces() 함수 호출
- 실습 예제 | 파이프를 애니메이션 업데이트를 위한 Game1 클래스 수정
- 파이프 애니메이션 그리기
- 실습 예제 | 파이프 애니메이션을 그리기 위해 Game1 클래스 수정
- SpriteBatch 확장
- 파이프 애니메이션을 위한 클래스
- SpriteFont
- 실습 예제 | SpriteFont 추가
- 점수 출력
- 실습 예제 | 점수 출력
- ScoreZooms
- 실습 예제 | ScoreZoom 클래스 생성
- 실습 예제 | ScoreZoom 출력과 업데이트
- GameOver 상태 추가
- 실습 예제 | Game Over
- 홍수 처리
- 실습 예제 | 홍수 수치 관리
- 홍수 그리기
- 실습 예제 | 홍수 그리기
- 게임 난이도 높이기
- 실습 예제 | 난이도 높이기
- 정리
- 파이프 애니메이션
- 4장 아스테로이드 벨트 어설트: 우주 미아
- 프로젝트 생성
- 실습 예제 | 아스테로이드 벨트 어설트 프로젝트 생성
- ‘스프라이트’의 또 다른 정의
- Sprite 클래스 생성
- 실습 예제 | Sprite 클래스 정의
- 실습 예제 | Sprite 생성자
- 실습 예제 | Sprite 기본 프로퍼티
- 실습 예제 | animation과 drawing 프로퍼티
- 충돌 감지
- 실습 예제 | 충돌 감지 지원하기
- 이동과 애니메이션
- 실습 예제 | 애니메이션 프레임 추가
- 실습 예제 | Sprite 업데이트
- 실습 예제 | 스프라이트 그리기
- Sprite 클래스 생성
- 스프라이트 기반 우주전장 생성
- 실습 예제 | StarField 클래스 생성
- 실습 예제 | StarField 업데이트와 그리기
- 실습 예제 | StarField 보기
- 애니메이션 스프라이트: 소행성
- 실습 예제 | AsteroidManager 클래스 생성
- 소행성 배치
- 실습 예제 | 소행성 배치하기
- 실습 예제 | 소행성의 위치 체크하기
- 실습 예제 | 소행성 그리기와 업데이트
- 소행성 충돌
- 실습 예제 | 튕겨나가는 소행성 1
- 실습 예제 | 튕겨나가는 소행성 2
- 플레이어와 적의 미사일
- 실습 예제 | ShotManager 클래스 추가하기
- 실습 예제 | 미사일 발사
- 실습 예제 | 미사일 업데이트와 그리기
- 플레이어 추가
- 실습 예제 | PlayerManager 클래스 추가
- 사용자 입력 다루기
- 실습 예제 | 사용자 입력 다루기
- 실습 예제 | 플레이어의 우주선을 업데이트하고 그리기
- 적 우주선
- 실습 예제 | Enemy 클래스 생성
- 실습 예제 | 경로 관리
- 실습 예제 | 적 업데이트와 그리기
- EnemyManager 클래스
- 실습 예제 | EnemyManager 클래스 생성
- 좌표 관리
- 실습 예제 | EnemyManager 클래스 설정하기
- 실습 예제 | 적 배치하기
- 실습 예제 | EnemyManager 업데이트와 그리기
- 정리
- 프로젝트 생성
- 5장 아스테로이드 벨트 어설트: 특수 효과
- 폭발 효과
- 스프라이트 확장하기: 입자
- 실습 예제 | Particle 클래스 구성하기
- 실습 예제 | 입자 업데이트와 그리기
- 입자 폭발
- 실습 예제 | ExplosionManager 클래스
- 실습 예제 | 폭발 생성하기
- 실습 예제 | 폭발 업데이트와 그리기
- 스프라이트 확장하기: 입자
- 충돌 매니저
- 실습 예제 | CollisionManager 클래스 생성
- 충돌 제어
- 실습 예제 | 플레이어 미사일 충돌
- 실습 예제 | 플레이어 충돌
- 실습 예제 | CollisionManager 클래스 사용하기
- 사운드 효과
- 사운드 효과 생성과 검색
- XNA에서의 사운드
- 실습 예제 | 사운드 효과 매니저 구현하기
- 실습 예제 | SoundManager 클래스 사용하기
- 게임 구조
- 실습 예제 | 게임 구조 정하기
- 실습 예제 | 게임 구조 그리기
- 정리
- 폭발 효과
- 6장 로봇 소동: 멀티 축 카오스
- 스태틱, 스태틱, 스태틱
- 실습 예제 | 로봇 소동 프로젝트 생성
- 화면보다 더 큰 세상
- 카메라 정의
- 실습 예제 | Camera 클래스 생성
- 월드를 아는 스프라이트
- 실습 예제 | 새로운 Sprite 클래스 생성
- 뷰 시각화
- 실습 예제 | Sprite와 Camera 클래스 액션 보기
- 카메라 정의
- 게임 월드: 타일 기반 맵
- 타일
- 타일 맵
- 실습 예제 | TileMap 클래스 생성
- 맵 스퀘어
- 실습 예제 | 맵 스퀘어 다루기
- 타일 다루기
- 실습 예제 | 타일 다루기
- 맵 그리기
- 실습 예제 | 타일 맵 그리기
- 랜덤 맵 생성
- 실습 예제 | 임의로 벽 교체하기
- 플레이어 추가
- Player 클래스 구현
- 실습 예제 | Player 클래스 구현하기
- 월드 돌아다니기
- 실습 예제 | 입력 다루기
- 경계 설정
- 실습 예제 | 경계 설정하기
- 타일에서의 움직임
- 실습 예제 | 벽에 부딪히기
- Player 클래스 구현
- 정리
- 스태틱, 스태틱, 스태틱
- 7장 로봇 소동: 많고 많은 탄환
- 시각화 효과
- 입자 다시 살펴보기
- 실습 예제 | Particle 클래스
- EffectsManager 클래스
- 실습 예제 | EffectsManager 클래스
- 실습 예제 | 폭발 구현하기
- 실습 예제 | 스파크 효과
- 입자 다시 살펴보기
- 무기 추가
- WeaponManager 클래스
- 실습 예제 | WeaponManager클래스 시작하기
- 무기 업그레이드
- 실습 예제 | 새로운 무기
- 포탄과 맵의 충돌
- 실습 예제 | 타일과 포탄의 충돌
- 파워 업
- 실습 예제 | 파워 업
- 여전히 발생하는 문제
- WeaponManager 클래스
- 경로 찾기
- A* 경로 찾기 알고리즘
- A* 구현하기
- 실습 예제 | PathNode 클래스
- 실습 예제 | A* 알고리즘 구현 시작하기
- 실습 예제 | 경로 찾기
- 실습 예제 | 적합한 스퀘어
- 파워 업 아이템의 안전한 배치
- 실습 예제 | WeaponManger 클래스 업데이트
- 플레이어의 목표
- 컴퓨터 터미널
- 실습 예제 | 컴퓨터 터미널 생성
- 컴퓨터 터미널 배치
- 실습 예제 | GoalManager 클래스
- 컴퓨터 터미널
- 적 로봇
- 적에 대한 기본적인 사항
- 실습 예제 | Enemy 클래스 구현하기
- 움직이는 적
- 실습 예제 | 적의 AI 함수
- 적 로봇 매니저
- 실습 예제 | 적 로봇 매니저
- WeaponManager 업데이트
- 실습 예제 | 적 파괴하기
- 적에 대한 기본적인 사항
- 게임 구조
- 실습 예제 | GameManager 클래스
- 점수 유지
- 실습 예제 | 점수 얻기
- Game1 업데이트
- 실습 예제 | Game1 클래스 업데이트
- 정리
- 시각화 효과
- 8장 보석 사냥꾼: 플렛폼 게임 개발 시작
- 그래픽 리소스 준비
- 실습 예제 | 프로젝트 만들기
- 향상된 타일 엔진
- 실습 예제 | MapSquare 클래스
- 카메라 클래스 코드의 재활용
- 실습 예제 | Camera 클래스
- 타일 엔진 구성
- 실습 예제 | TileMap 클래스 1단계
- 실습 예제 | TileMap 클래스 2단계
- 타일 맵 그리기
- 실습 예제 | TileMap 클래스 3단계
- 실습 예제 | 타일 맵을 게임 프로젝트에 추가
- 맵 에디터 프로젝트
- 맵 에디터 프로젝트 생성
- 실습 예제 | Level Editor 프로젝트 생성
- 폼 추가
- 실습 예제 | Form 추가
- 실습 예제 | 이벤트 핸들러 추가
- 폼 UI 만들기
- 실습 예제 | 메뉴 바 생성
- 실습 예제 | 타일 선택 컨트롤
- 실습 예제 | 스크롤바 추가
- 실습 예제 | 컨트롤 작업 마무리
- Game1 클래스 수정
- 실습 예제 | Game1 클래스 수정
- 실습 예제 | Game1 클래스의 Update() 함수 수정
- 폼과 게임 연결
- 실습 예제 | 맵 에디터 완성하기 1단계
- 실습 예제 | 타일 스크롤링 문제 해결
- 맵 데이터 읽기와 저장
- 실습 예제 | 맵 데이터 읽기와 저장 기능 구현
- Passability
- 맵 코드
- 맵 에디터 프로젝트 생성
- 마지막 남은 이슈 해결
- 실습 예제 | FormClosed 이벤트 핸들러 작성
- 정리
- 9장 보석 사냥꾼: 게임 완성
- 애니메이션 스트립
- 실습 예제 | Animation 클래스 만들기
- 애니메이션 가능한 게임 객체
- 실습 예제 | GameObject 클래스 작성 1
- 객체 이동 처리, 애니메이션 업데이트, 그리기
- 실습 예제 | GameObject 클래스 작성 2
- 맵 기반 충돌 검사
- 실습 예제 | GameObject 클래스 작성 3
- 플레이어
- 실습 예제 | Player 클래스 생성
- 달리기
- 실습 예제 | Update 함수 오버라이딩 1
- 점프
- 실습 예제 | Update() 함수 오버라이딩 2
- 화면 중심으로 캐릭터 배치
- 실습 예제 | 카메라 위치 수정
- 레벨 로드
- LevelManager 클래스
- 실습 예제 | LevelManager 클래스 생성
- LevelManager 클래스
- 보석
- 실습 예제 | GemStone 클래스 생성
- 점수 관리
- 실습 예제 | 점수 관리 구현
- 적 구현
- 실습 예제 | 좀비 생성
- 플레이어와 적 사이의 상호작용
- 실습 예제 | 좀비와 상호작용
- 레벨 이동
- 실습 예제 | 레벨 이동 지원
- 나머지 Code 처리
- 실습 예제 | Code 처리
- 게임 구조
- 실습 예제 | 게임 상태 구현
- 애니메이션 스트립