Top

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 전문가가 될 수 있을 것이다.

저자/역자 소개

[ 저자 서문 ]

개인 개발자부터 대규모 팀까지 XNA 프레임워크를 사용하면 마이크로소프트 플랫폼을 지원하는 다양한 기기용 고성능 게임을 빠르게 개발할 수 있다.

이 책을 통해 개발자는 XNA 게임 스튜디오와 XNA 프레임워크를 활용해 윈도우 환경의 2D 게임을 개발하는 방법과, 2D 그래픽, 경로 찾기, 충돌 감지, 특수 효과 등의 기법을 배울 수 있다.

책에서 소개하는 4개의 예제 게임은 서로 다른 장르의 교과서 같은 게임으로, 게임을 만드는 데 필수적인 요소와 확장 가능한 부분을 포함한다.


[ 저자 소개 ]

커트 재거스 (Kurt Jaegers)
낮에는 DBA로 일하고 밤에 취미로 게임을 개발하며, 코모도어(Commodore) 64부터 엑스박스 360에 이르기까지 다양한 게임을 만들어왔다. 또한 XNA 관련 자료와 튜토리얼을 제공하는 xnaresources.com의 운영자이기도 하다.


[ 옮긴이의 말 ]

2007년 마이크로소프트의 이매진컵ImagineCup을 준비하면서 처음 접했던 XNA 1.0이 이제 5년의 시간이 흘러 4.0이 됐습니다. 처음 배울 때 레퍼런스가 없어 많은 삽질을 통해 괴로워하고 깨달았던 기억이 아직도 생생합니다. 공모전이라는 특성상 데드라인은 정해진 것이고, 게임은 반드시 개발해야 했기에 그 어느 때보다 스트레스가 심했습니다. 다행히 이런 노력이 좋은 결과로 이어져 이매진컵 2008에서 게임 개발 분야 세계 3위를 수상했습니다. 상은 받았지만, 목표를 잃어 마음 한 구석이 허탈해진 제게 당시 한국 마이크로소프트의 유재성 사장님께서 “이렇게 공모전을 통해 배운 열정과 지식을 이제 후배들에게 알려주는 일이 남아있다.”라고 말씀해주셨습니다. 이후 지식 공유는 제 인생의 한 축이 됐습니다.

2008년 후반부터 지금까지 XNA 게임 개발과 관련된 내용을 블로그, 강연, 멘토링, 카페, 이메일 등 다양한 방법으로 알리고 있지만, 주로 공모전과 학교 과제에서만 XNA를 이용해 아직 제대로 활성화되지 않고 있습니다. 다행히 윈도우폰 7의 게임 개발에서 XNA가 필수가 되면서 이제 XNA가 좀 더 알려질 수 있게 됐습니다.

『XNA 4.0 Game Development by Example 한국어판』은 초보자도 쉽게 따라 하고 호기심을 느끼도록 다양한 장르의 게임(플랫포머, 퍼즐, 비행기 슈팅, 2D 탱크 게임)을 튜토리얼 형태로 소개합니다. XNA를 처음 접하는 독자를 대상으로 작성된 책이기 때문에 부담 없이 배울 수 있습니다.

그럼에도 불구하고 책을 공부하면서 이해되지 않는 부분이 있을 수 있어, 이를 위해 XNADev(http://xnadev.co.kr) 사이트에 질문을 올릴 수 있는 공간을 만들어 뒀습니다. 간단한 질문에도 번개처럼 성실한 답변을 해드리니 부담 없이 질문을 올려주세요. 또한 네이버 XNA 카페(http://cafe.naver.com/xna)에 올리거나, 역자에게 직접 이메일을 보내도 됩니다.

- 김동훈


#define XNA

XNA라는 단어가 딱히 어떤 의미를 가진 단어는 아니라는 마이크로소프트의 공식 답변에도 불구하고 XNA는 어째서인지 무언가를 의미할 것만 같습니다. 2005년 GDC에서 프로젝트로 발표된 이후 PC, 엑스박스, 준(Zune)을 거쳐 윈도우폰 7의 주요 기술로 자리매김한 XNA는 많은 개발자와 기획자, 디자인/사운드 효과 팀이 협업하며, 그들의 메시지를 담는 게임을 만드는 개발 경험을 이끌어왔습니다.

your dream game - build it today - millions may play it tomorrow

“여러분의 꿈의 게임, 오늘 만들어 보세요, 내일이면 전 세계 수백만 명이 즐길 것입니다.”라는 모토를 가진 XNA를 『XNA 4.0 Game Development by Example 한국어판』을 통해 소개할 수 있게 된 것은 제게 매우 행운이라고 생각합니다. 단순히 레퍼런스가 아니라 게임을 이야기할 수 있는 내용으로 구성된 책이기 때문에 제게도 더 의미 있는 작업이 될 수 있었고, 독자 여러분께도 좋은 메시지를 전달할 수 있으리라 기대합니다.

- 김유나


[ 옮긴이 소개 ]

김동훈
2008년 이매진컵 게임 개발 분야에서 세계 3위를 한 것을 계기로 XNADev 사이트, 네이버 XNA 카페, 블로그, 오프라인 강연, 공모전 멘토링 등 다양한 방법으로 XNA를 알리는 데 힘쓰고 있다. 현재 마이크로소프트 XNA/DirectX MVP며, 모바일 게임 개발 업체인 GomZ Game Studio 대표다.

김유나
데브피아 마이크로소프트 XNA 마을의 시샵이며, UX베이커리, XNAdev (http://xnadev.co.kr)의 운영진이다. 마이크로소프트 학생 파트너(MSP, Microsoft Student Partner) 1기, 마이크로소프트 MVP(XNA/DirectX)로 철학을 담을 수 있는 엔지니어, Civilized Engineer를 꿈꾼다.

목차

목차
  • 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
    • 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 업데이트
        • 실습 예제 | 스프라이트 그리기
    • 스프라이트 기반 우주전장 생성
      • 실습 예제 | 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 클래스 구현하기
      • 월드 돌아다니기
        • 실습 예제 | 입력 다루기
      • 경계 설정
        • 실습 예제 | 경계 설정하기
      • 타일에서의 움직임
        • 실습 예제 | 벽에 부딪히기
    • 정리
  • 7장 로봇 소동: 많고 많은 탄환
    • 시각화 효과
      • 입자 다시 살펴보기
        • 실습 예제 | Particle 클래스
      • EffectsManager 클래스
        • 실습 예제 | EffectsManager 클래스
        • 실습 예제 | 폭발 구현하기
        • 실습 예제 | 스파크 효과
    • 무기 추가
      • 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 클래스 생성
    • 보석
      • 실습 예제 | GemStone 클래스 생성
    • 점수 관리
      • 실습 예제 | 점수 관리 구현
    • 적 구현
      • 실습 예제 | 좀비 생성
    • 플레이어와 적 사이의 상호작용
      • 실습 예제 | 좀비와 상호작용
    • 레벨 이동
      • 실습 예제 | 레벨 이동 지원
    • 나머지 Code 처리
      • 실습 예제 | Code 처리
    • 게임 구조
      • 실습 예제 | 게임 상태 구현

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안