Top

[인터랙티브 게임과 애니메이션을 위한]
HTML5 캔버스 첫걸음

  • 원서명Foundation HTML5 Canvas: For Games and Entertainment (ISBN 9781430232919)
  • 지은이롭 호크스
  • 옮긴이박진수
  • ISBN : 9788960772557
  • 30,000원
  • 2011년 12월 26일 펴냄
  • 페이퍼백 | 460쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

책 소개

인터랙티브한 게임과 애니메이션, 엔터테인먼트 애플리케이션을 만드는 데 필요한 HTML5 캔버스를 기초부터 쉽고 자세히 알려주는 책. 자바스크립트의 기초부터 시작해, 단순한 도형을 그리고, 움직이며, 영상을 화소 단위로 조작하고, 물리학을 응용해 게임을 만드는 일까지 아우르는 내용이 담겨 있다. 학습서로도 활용할 수 있고 참고서로도 활용할 수 있도록 잘 구성되었다.


[ 소개 ]

『HTML5 캔버스 첫걸음』으로 흥미롭고 인터랙티브한 게임과 엔터테인먼트 애플리케이션을 만드는 방법을 배울 수 있다.

HTML5와 자바스크립트를 이용해 캔버스로 그래픽, 애니메이션, 애플리케이션을 만들 수 있다. 캔버스를 사용하면 브라우저 내에 바로 그릴 수 있으며, 데스크톱 컴퓨터와 아이폰이나 안드로이드 같은 모바일 기기에서 모두 실행 가능하다.

새롭게 열린 HTML5 세계와 HTML5의 멋진 새 기능들을 소개하며 시작한다. 그러고 나서 자바스크립트 프로그램 작성 방법을 빠르게 안내한다. 그 다음에는 canvas 엘리먼트를 살펴보고, 아주 쉬운 방법으로 브라우저 안에 그림을 그리는 방법을 알려준다.

기초를 다지고 나면 동영상이나 이미지를 다루는 데 필요한 기능들을 향해 전진한다. 기초 물리학을 동원해 실감나는 애니메이션을 만드는 법도 배울 수 있다. 잘 정제된 예제 코드와 그림을 담은 이 책으로 기초를 숙달하고 난해한 주제까지도 잘 이해할 수 있을 것이다.

저자 롭 호크스는 이 책에서 긴장감 가득한 우주 배경 게임 두 가지를 제대로 만들어본다. 저자는 개발 방법을 자세히 알려줌으로써 배운 것을 바로 활용하게 돕는다.

이 책에서 여러분 앞에 펼쳐진 HTML5 세상을 즐기는 데 필요한 모든 정보를 얻을 수 있다.


[ 이 책에서 다루는 내용 ]

■ HTML5가 제공하는 흥미로운 새 기능과 활용 방법
■ 자바스크립트로 프로그램을 만드는 데 필요한 기초 기술과 사용자 입력을 감지하는 기술
■ canvas 엘리먼트가 중요한 이유와 써야 하는 이유
■ 캔버스의 특징을 기초부터 고급 수준까지 활용하는 방법
■ 캔버스와 물리적 튕김 현상을 사용해 실감나는 애니메이션을 만드는 방법
■ 캔버스와 자바스크립트와 기타 HTML5 기능으로 인터랙티브 게임을 만드는 방법


[ 이 책의 대상 독자 ]

『HTML5 캔버스 첫걸음』은 초보자든 전문가든 누구든지 쉽게 이해할 수 있도록 알기 쉽게 썼다. HTML5와 자바스크립트에 익숙하지 않은 웹 디자이너가 주요 대상 독자로서 HTML5의 캔버스 엘리먼트로 인터랙티브한 게임과 애플리케이션을 개발하기 위한 기본기를 주로 다룬다. 하지만 숙련된 웹 디자이너나 프로그래머도 캔버스의 특징을 익혀 자신의 작업에 응용하는 방법을 배울 수 있다. 웹이나 모바일 분야까지 영역을 넓히려는 플래시 개발자나 실버라이트 개발자도 이 책에서 많은 정보를 얻을 수 있다.


[ 이 책의 구성 ]

HTML5나 웹으로 이끌어 주는 멋진 새 기능을 간단히 소개하며 이 책을 연다.

1장에서는 HTML5의 배경 지식과 주변 기술을 익혀 무장한다. 일단 HTML5의 기초를 확립하면 그 다음에 자바스크립트 학습으로 넘어간다.

2장에서는 HTML5 캔버스를 활용하고 놀라운 애니메이션과 게임을 만드는 데 필요한 내용을 하나씩 배워간다.

3장은 캔버스 엘리먼트를 자세히 설명하고, 캔버스 엘리먼트를 이용해 기본적인 도형과 문자를 그리는 방법을 다룬다. 이 장에서부터 본격적으로 캔버스 기능과 캔버스의 단순명료한 매력에 빠져보길 바란다.

4장은 캔버스의 고급 기능을 소개한다. 복잡한 도형(shape)을 그리는 방법과 변환(transform)하는 방법을 알아보며, 캔버스에 그린 그림을 이미지 파일로 저장하는 방법도 알아본다.

5장에서는 앞에서 배운 지식을 활용해 이미지와 동영상을 캔버스로 다루는 방법을 알아본다. 여기서부터 매우 흥미로워지기 시작하는 부분으로서, 5장에서 캔버스를 실용적으로 쓰는 방법을 실감나게 느껴보기 바란다.

6장과 7장에서는 기어를 한 단계 높여 자바스크립트와 캔버스로 애니메이션을 구현하는 방법을 배운다. 이 두 장에서 애니메이션의 기초를 배울 뿐만 아니라 애니메이션을 실감나게 만드는 물리학도 배운다.

8장과 9장은 이 책의 절정부에 해당한다. 이 두 장 모두에서 HTML5 게임을 하나씩 만들어 본다. 그리고 캔버스로 게임을 제작하는 일에 관련된 핵심 측면부터 시작해서 사용자 입력을 거쳐 HTML5 오디오로 소리를 내게 하는 일까지 살펴본다. 이 두 장의 내용으로 HTML5로 자신만의 게임을 만드는 창의력을 높이는 데 도움이 될 것이다.

이 책은 캔버스의 미래상과 더 나은 것들을 취하는 방법을 설명하는 10장으로 마무리한다. 이 마지막 장을 통해 독자들에게 이 책에서 배운 모든 내용을 취합해 영감을 불러일으키고 한 단계 높은 수준으로 끌어올릴 수 있기를 바란다.

처음부터 한 장씩 읽거나, 아니면 필요한 주제만을 골라 읽을 수 있게 책을 구성하려고 애썼다. 이 책은 자바스크립트와 캔버스를 이용해 애니메이션을 만들어 내는 일에 기준점이 될 뿐만 아니라 학습에 필요한 참고 자료의 역할도 할 수 있다.
이 책에 실린 모든 코드는 ‘프렌즈오브에드’ 출판사가 개설한 웹페이지 http://www.friendsofed.com에서 다운로드할 수 있다. 또한 에이콘출판사 도서정보 페이지 http://www.acornpub.co.kr/book/foundation-html5-canvas에서도 다운로드할 수 있다.

저자/역자 소개

[ 저자 서문 ]

몇 년 전에 나에게 책을 쓰는 것을 상상할 수 있겠냐고 물어 봤다면 나는 불가능하다고 대답했을 테다. 하지만 어느덧 나는 HTML5 캔버스에 관한 한은 아주 유용한 책의 저자가 됐다. 내가 캔버스를 배우기 시작했을 때부터 지금까지 2년간 지녀왔던 소원은 책을 집필하는 것이었다. 그 당시에는 캔버스와 관련된 참조 자료가 매우 드물었다. 다행히도 지금은 상황이 많이 개선됐다.

지난 2년 동안 캔버스를 경험하고, 막 빛을 보기 시작한 새로운 웹 기술을 실험하는 일에 많은 시간을 할애했다. 2010년 9월 인터랙티브한 공 모양으로 만들어본 구글 로고 디자인 작업부터 HTML5 캔버스와 웹 소켓으로 본적인 멀티플레이어 게임을 작성하는 일에 이르기까지 다양한 시도를 해왔다. 이와 같은 경험 덕분에 이 책을 쓰고 내가 얻은 교훈을 다른 이에게 가르치는 데 필요한 경험과 지식을 쌓을 수 있었다.

나는 캔버스나 자바스크립트 같은 기술로 애니메이션이나 게임을 개발하는 일에 완전히 매료됐다. 이 책이 내가 지녔던 열정을 똑같이 독자에게 불러 일으켜주고, 독자가 HTML5 캔버스를 숙달하려는 여행에 동반자가 되어주기를 간절히 바란다.


[ 저자 소개 ]

롭 호크스 (Rob Hawkes)
롭은 코드로 문제를 해결하는 데 능하다. 비주얼 프로그래밍에 매료된 롭은 웹의 여러 가지 흥미로운 새 기능과 HTML5의 매력에 빠져 몰두하고 있다. 온오프라인에서 새롭고 흥미로운 기술과 관련된 대단한 프로젝트 일을 하며 대부분의 시간을 보낸다. 롭은 잉글랜드 남부 해안도시 본머스Bournemouth에 있는 본머스대학교에서 인터랙티브 미디어 제작을 공부했다. 학교를 다니다 바닷가 도시와 사랑에 빠진 롭은 자신이 태어난 런던을 떠나 지금은 본머스에서 거주한다.
저자와 저자가 열광하는 기술적 경험을 더 알고 싶다면 롭이 운영하는 웹사이트(http://rawkes.com)를 방문하거나 트위터(@robhawkes)에 팔로워로 등록하기 바란다.


[ 옮긴이의 말 ]

사람이 살아가면서 무언가를 해보겠다고 마음먹는 일에 이유가 있어야만 하는 것은 아니다. 그러나 굳이 내가 번역을 시작해보겠다고 마음먹은 이유 중 하나를 들어보라고 한다면 좋은 지식을 내 자신이 흡수할 뿐만 아니라 다른 이에게도 빨리 소개하고 싶은 마음이 들었다는 점을 들 수 있다. 『HTML5 캔버스 첫걸음』을 번역하면서 내 소원대로 됐다. 내 자신이 좋은 지식을 얻었을 뿐만 아니라 이 책을 읽을 독자들도 좋은 지식을 얻게 되리라 생각할 수 있었다. 모든 경제 행위에서 부가가치를 창출하는 유일한 요소가 ‘지식’이라고 가정한다면 번역하는 행위는 사회에 부가가치를 안겨주는 행위일 것이다. 이런 점에서 이 책을 번역한 보람을 느낀다.

『HTML5 캔버스 첫걸음』은 자세히 소개할 필요가 없을 정도로 잘 구성된 책이다. 표지 뒷면에 실린 소개말이 내가 소개할 수 있는 것보다 책을 더 잘 소개한다. 그리고 목차를 훑어보기만 해도 이 책으로 무엇을 할 수 있는지 쉽게 알 수 있다. 그만큼 잘 구성된 책이다. 그러므로 나는 따로 책을 소개하는 말을 쓰지 않는다. 대신 당부하고 싶은 말을 전한다. 이 책에 실린 코드를 직접 작성해보기 바란다. 그러면 읽기만 할 때보다 책에 실린 내용을 몇 배나 더 잘 이해할 수 있다.


[ 옮긴이 소개 ]

박진수
오랫동안 소프트웨어 엔지니어로 근무했고, 그 경력을 살려 IT 관련 도서를 집필했고, 이제 막 번역 활동을 개시했다. 『C 기초 핵심 원리』, 『C++ 기초 핵심 원리』 등 다수의 도서를 저술했다.
머무를 우(寓), 모두 제(諸), 쓸 용(庸). 치우침 없이 머무른다는 의미로 역자가 이야기책을 쓸 때 본명 대신 쓰는 필명이다. 이 필명으로 『복리』, 『끈기』, 『1분 창의력』, 『기니피그 이야기』 등 짧지만 지식을 담아낸 이야기책을 다수 저술했다.

목차

목차
  • 1장 HTML5 소개
    • 간추린 HTML의 역사
    • HTML5가 필요한 이유
      • 가려움
      • 가려운 곳 긁기
    • HTML5의 새로운 면
      • 내용 구조화 엘리먼트
      • 양식
      • 미디어 관련 엘리먼트
    • HTML5로 만든 견본 웹페이지 뜯어보기
      • 한 줄씩 코드 분석
    • HTML5에 대한 오해
      • CSS3에 대한 오해
      • 웹 폰트에 대한 오해
      • 위치 정보에 대한 오해
      • SVG에 대한 오해
      • 웹 저장소에 대한 오해
      • 웹 워커에 대한 오해
      • 웹 소켓에 대한 오해
    • 정리
      • HTML5 관련 추가 정보
  • 2장 자바스크립트 기초
    • 자바스크립트 훑어보기
    • 제이쿼리
      • 제이쿼리란?
      • 제이쿼리를 쓰는 이유
      • 속임수일까?
      • 자바스크립트를 제대로 이해하지 못했다는 뜻인가?
      • 제이쿼리를 사용하려면 어떻게 해야 할까?
    • HTML 페이지에 자바스크립트 추가
    • 웹페이지 탑재 후 자바스크립트 실행
      • 잘못된 방법(window.onload 이벤트 방식)
      • 어려운 방법(DOM 방식)
      • 쉬운 방법(제이쿼리 방식)
    • 변수와 데이터 타입
      • 변수
      • 데이터 타입
    • 제어문
      • if문
      • 비교 연산자
      • if문과 복합 조건
      • else문과 else if문
    • 함수
      • 함수 작성
      • 함수 호출
    • 객체
      • 객체란?
      • 객체 생성과 사용
    • 배열
      • 배열 작성
      • 배열 접근과 수정
    • 반복문
    • 타이머
      • 일회용 타이머 설정
      • 일회용 타이머 해제
      • 반복 타이머 설정
      • 반복 타이머 해제
    • DOM
      • HTML 웹페이지 예
      • 자바스크립트만으로 DOM에 접근하는 방법
      • 제이쿼리로 DOM에 접근하는 방법
      • DOM 조작
    • 정리
  • 3장 캔버스 기초 학습
    • canvas 엘리먼트와 친해지기
      • 캔버스를 지원하는 브라우저
    • 2차원 렌더링 컨텍스트
      • 좌표계
      • 2차원 렌더링 컨텍스트에 접근
    • 간단한 도형과 선 그리기
    • 스타일
      • 선의 두께 바꾸기
    • 텍스트 그리기
    • 캔버스를 지우기
      • 너비/높이 기교
    • 캔버스로 브라우저 창 채우기
    • 정리
  • 4장 캔버스 심화 학습
    • 그리기 상태 저장과 복원
      • 캔버스의 그리기 상태란?
      • 그리기 상태 저장
      • 그리기 상태 복원
      • 여러 그리기 상태 저장과 복원
    • 변환
      • 이동
      • 크기 조절
      • 회전
      • 변환 행렬
    • 합성
      • 전역 투명도
      • 합성 연산
    • 그림자
    • 그레이디언트
    • 복합 경로
      • 베지어 곡선
    • 이미지 파일로 캔버스 내보내기
    • 정리
  • 5장 이미지와 동영상 조작
    • 캔버스에 이미지 탑재
    • 이미지 크기 조절과 자르기
      • 이미지 크기 조절
      • 이미지 자르기
      • 그림자
    • 이미지 변환
      • 이동
      • 회전
      • 크기 조절하며 뒤집기
    • 픽셀 값에 접근
      • 보안 문제
    • 처음부터 이미지 만들기
      • 픽셀 색상 무작위로 설정
      • 모자이크 효과
    • 이미지에 기본 효과 적용
      • 색상 반전
      • 회색조
      • 픽셀 처리
    • 동영상 조작
      • HTML5의 video 엘리먼트 생성
      • HTML5 동영상 API에 접근
      • 캔버스 설정
    • 정리
  • 6장 사물 움직이기
    • 캔버스에서의 애니메이션
    • 애니메이션 루프 작성
      • 애니메이션 루프
      • 수정하고, 지우고, 그리기
    • 그릴 도형 기억
      • 잘못된 방법
      • 올바른 방식
      • 도형을 무작위로 만들기
    • 방향 전환
    • 원을 따라 움직이기
      • 삼각법
      • 모든 것을 한 자리에 놓기
    • 경계선에서 객체 튕기기
    • 정리
  • 7장 향상된 애니메이션 구현
    • 물리학 개론
      • 물리학이란?
      • 이미지를 처리하는 데 도움이 되는 이유
      • 기본 용어
      • 뉴턴의 운동 법칙
    • 물리학을 이용한 애니메이션
      • 사전 준비
      • 속도
      • 경계선 추가
      • 가속도
      • 마찰력
    • 충돌 처리
      • 충돌 검출
      • 서로 부딪힌 객체끼리 튕겨내기
      • 운동량 보존
    • 정리
  • 8장 우주 볼링 게임 제작
    • 게임 개요
      • 요구 사항
    • 핵심 기능 설정
      • HTML 표시
      • 멋지게 만들기
      • 자바스크립트 설정
    • 사용자 인터페이스 활성화
    • 게임 객체 생성
      • 기지 생성
      • 소행성 설정
      • 플레이어의 소행성 설정
      • UI 갱신
    • 사물 움직이기
    • 사용자 상호 작용의 검출
      • 모두 설정
      • 플레이어 소행성 선택
      • 추진력 증가
      • 놓아주기
      • 사용자 입력 시각화
    • 플레이어 재설정
    • 플레이어가 이기게 하기
      • 점수 갱신
      • 플랫폼에서 소행성 제거
    • 정리
  • 9장 소행성 회피 게임 시작
    • 게임 개요
      • 요구 사항
    • 핵심 기능 설정
      • HTML 표시
      • 멋있게 만들기
      • 자바스크립트 설정
    • 게임 객체 생성
      • 소행성 설정
      • 플레이어의 로켓 설정
    • 키보드 입력 감지
      • 키 코드
      • 키보드 이벤트
    • 사물 움직이기
    • 횡스크롤 효과 꾸미기
      • 소행성 재활용
      • 경계 추가
      • 로켓이 계속 이동하게 하기
    • 소리 추가
    • 게임 마무리
      • 점수 매기기
      • 로켓 파괴
    • 난이도 높이기
    • 정리
  • 10장 캔버스의 미래
    • 캔버스와 SVG
      • 접근성
      • 비트맵과 벡터
    • 캔버스와 플래시
      • 자바스크립트 개발자는 플래시 개발자에게 배울 수 있다
      • 플래시처럼 사용자 친화적인 편집기가 캔버스에는 없다
    • 캔버스와 성능
      • 성능 시험
    • 캔버스 게임 라이브러리와 애니메이션 라이브러리
    • 삼차원 세계
    • 주변 기기와 통합
      • 무지개 프로젝트
    • 웹 소켓으로 멀티플레이 구현
    • 영감을 주는 게임
      • 스케치 아웃(Sketch Out)
      • Z-타입
      • 꼬불이(Sinous)

도서 오류 신고

도서 오류 신고

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

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

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

정오표

[ p296 '사전 준비' 절 2행 ]
별도의 파일로 자바를 저장하면 → 별도의 파일로 자바스크립트를 저장하면