HTML 5는 웹 페이지를 표현하는데 있어서 HTML 4에 비해서 눈부신 발전을 한 마크 업 언어입니다. HTML 5에 앞서서는 웹의
미래는 Semantic 웹이란 개념이 대두되면서 XML로 기술된 XHTML 2가 있었습니다.그러나 XHTML 2는 웹 브라우저
제작 회사들의 지지를 받지 못하게 되었고 HTML 5는 HTML 4에 비해 프로그래머에게 보다 친숙하게 설계되었습니다. 그러면서도 웹 페이지
사용자에게도 다양한 사용자 경험을 제공하게 되었습니다.이러한 사용자 경험의 확대엔 HTML 5의 신기술 중 Canvas가 자리잡고
있습니다. Canvas는 웹 페이지에서 바로 그림을 그리고 표현할 수 있는 기술입니다.<HTML 5 Canvas>는
HTML 5의 Canvas로 할 수 있는 모든 기술은 아닐지라도 이것이 캔버스다!를 외칠 수 있을 정도의 내용을 게임을 예로 들어
설명합니다.
캔버스의 테스트는 아직 모든 브라우저가 캔버스를 지원하는 것이 아닌 만큼 IE에서의 캔버스 테스트보다 구글 크롬에서의 테스트를
추천합니다.캔버스에 그리기HTML 5에서 Canvas 영역은 브라우저
전체가 아닙니다. 그래서 Canvas 태그가 위치한 영역과 넓이, 높이에 따라 캔버스 영역이 달라지지요.Chapter 2에서는
캔버스에 그림을 그리는 기본 방법에 대해서 알아봅니다. 캔버스만 웹 페이지에 올려놓기만 하면 그림이 그려지면 좋겠지만 그렇지 못하니 캔버스
위에서 선을 그리고 원호와 캔버스 변환 등을 통해 원하는 그림을 어떻게 만들어 내는 기본 방법을 배우게 됩니다.문자, 이미지, 애니메이션 그리기Chapter 3 ~ Chapter 5까지는 캔버스에 문자와
이미지, 수학과 물리학을 적용한 애니메이션을 표현하는 방법을 배우게 됩니다. 문자 API와 이미지 API를 통해 문자를 표현하고 이미지를
불러들여 조작하는 것은 캔버스에서 중요한 요소로 분류될 수 있습니다.특히 Chapter 5에서는 수학과 물리학을 적용해 캔버스에서
애니메이션을 구현해봅니다. 이 장을 통해서 독자는 애니메이션을 직접 표현하는 방법을 자세하게 배우게 됩니다.캔버스와 비디오 그리고 오디오HTML 5엔 다양한 비디오와 오디오 파일을 읽어들 일 수 있도록 되어
있습니다. 그런데 이런 비디오나 오디오 파일을 읽어들 일 수 있는 시중의 플레이어들은 겉모습도 화려하고 기능도 많습니다. 물론 HTML 5에
이르러서 모든 브라우저에서 플러그인 없이 비디오나 오디오가 재생된다는 점은 훌륭한 장점에 속합니다.Chapter 6 ~
Chapter 7에서는 캔버스의 그리기와 Video, Audio 태그를 자바스크립트로 제어해서 브라우저에서 기본 제공하는 플레이어보다 겉모습도
예쁘고 잘 동작하는 멋진 플레이어를 만드는 방법을 배우게 됩니다.
이제 것 배운 기술을 발산하기 – 게임을 만들어 보자!<HTML 5
Canvas>의 Chapter 1에서 Chapter 7까지는 Canvas 기본 사용 방법을 배웠다면 Chapter 8 ~ Chapter
9까지 “지오 블라스터”의 기본 구성 및 비트맵과 사운드를 구현합니다. Chapter 9까지 충실히 따라왔다면 브라우저에서 동작하는 게임이
독자를 기다리고 있을 것입니다.Chapter 10에선 BS Bingo 게임을 폰갭 프레임워크로 모바일 기기로 포팅하게 됩니다.
모바일 브라우저도 HTML 5 Canvas를 부분 지원한다는 것을 본다면 HTML 5 Canvas의 활용은 모바일에서도 유용하지
않을까요?Canvas 저 편 너머로 할 수 있는 것! – 3D, 다중 사용자
애플리케이션아직 캔버스는 2D 그래픽만 표현할 수 있지만 일부 브라우저에선 실험적으로 3D 객체를 그리거나 표현해낼 수
있습니다. 이 장의 내용은 구글 크롬을 통해서만 테스트할 수 있습니다. 그리고 ElectroServer 를 통해서 다중 사용자간에
캔버스에 그릴 객체(말은 이렇게 해도 캔버스는 즉시성을 가지고 있기 때문에 객체 단위로 그림을 관리할 수 없습니다)를 사용자간에 보내 채팅
애플리케이션을 만들거나 화이트 보드 애플리케이션을 만들어 볼 수도 있겠습니다.<HTML 5 Canvas>는 HTML
5의 Canvas를 지금 알려진 것보다 더 깊이 더 많이 알게 도와줍니다. 무엇보다 저자와 번역자들이 이 책을 통해 쏟아낸 지식들은 국내
웹에서도 쉽게 찾아보기 어려운 것이 많으므로 캔버스에 대해 깊게 공부해보고 싶은 분들에게 추천합니다.제게도 본 도서는 HTML
5의 캔버스가 단순히 물감만 표현할 수 있었던 캔버스가 아님을 알게 되기도 했습니다. Canvas의 알파부터 오메가까지! 알고 싶은 모든 분들
어서 오세요~!
플러그인 없이도 웹에 화려한 그림을 수놓는다.
캔버스의 등장으로 웹 애플리케이션은 더 이상 플러그인, 플랫폼, 개발 툴에 의존하지 않아도 된다. HTML5의 새 기능, 캔버스는 웹을 도화지 삼아 2D와 3D 그림을 그리고 비디오와 오디오를 넣어 제어할 수 있게 했으며 애니메이션을 제작할 수 있게 했다. 아울러 그래픽이 가미된 대화형 사용자 인터페이스 제작도 가능해졌다.
C, C++, C#, 자바 등으로 개발해봤다면 부담 없이 이 책으로 웹 개발을 익힐 수 있다. 그리고 HTML과 자바스크립트로 웹을 개발해봤다면 부담 없이 이 책으로 신기술을 배울 수 있을 것이다. 또 플래시 개발자라면 자바스크립트가 액션스크립트 1과 비슷하다는 점을 생각하며 책을 읽으면 쉽게 캔버스와 자바스크립트를 익힐 것이다. 징가(Zynga) 게임 개발자의 도움을 받아 캔버스를 완벽히 자신의 것으로 만들어보자.
옮긴이의 글
지은이의 글
감사의 글
CHAPTER 01 HTML5 캔버스 소개
01-1 기본적인 HTML 페이지
__1. 「!doctype html」
__2. 「html lang= ko 」
__3. 「meta charset= UTF-8 」
__4. 「title」 . . . 「 / title」
__5. 간단한 HTML5 페이지
01-2 이 책에서 사용하는 기본적인 HTML
__1. 「div」
__2. 「canvas」
01-3 DOM과 캔버스
01-4 자바스크립트와 캔버스
__1. 자바스크립트 프레임워크와 라이브러리
__2. 자바스크립트를 넣는 위치
01-5 HTML5 캔버스로 만드는 Hello World!
__1. 캔버스를 위한 자바스크립트 코드 캡슐화하기
__2. HTML 페이지에 캔버스 넣기
__3. 브라우저가 캔버스를 지원하는지 알아보기
__4. 2D 컨텍스트 구하기
__5. drawScreen( ) 함수
01-6 Console.log로 디버깅하기
01-7 2D 컨텍스트와 현재 상태 정보
01-8 HTML5 캔버스 객체
01-9 또 다른 예제: Guess The Letter
__1. 게임의 작동 원리
__2. Guess The Letter 게임의 변수
__3. initGame( ) 함수
__4. eventKeyPressed( ) 함수
__5. drawScreen( ) 함수
__6. 캔버스에서 이미지로 바꾸기
__7. 완성된 게임 코드
01-10 다음 내용 소개
CHAPTER 02 캔버스에 그리기
02-1 기본 파일 형태
02-2 기본 사각형 그리기
02-3 캔버스 상태 정보
__1. 상태 정보에 없는 정보
__2. 상태 정보의 저장과 복구
02-4 패스를 이용해서 선 그리기
__1. 패스의 시작과 끝
__2. 실제로 그리기
__3. 더 복잡한 선 그리기 예제
02-5 고급 패스 메서드
__1. 원호 그리기
__2. 베지어 곡선 그리기
__3. 캔버스 영역 선택
02-6 겹치기 효과
02-7 간단한 캔버스 변환
__1. 회전과 이동
__2. 스케일 변환
__3. 스케일과 회전 변환 조합하기
02-8 색상과 그레이디언트 넣기
__1. 채우기 색상 설정
__2. 그레이디언트로 채우기
02-9 도형에 패턴 채우기
02-10 그림자 만들기
02-11 다음 내용 소개
CHAPTER 03 HTML5 캔버스 문자 API
03-1 문자 출력의 기본
__1. 기본 문자 출력
__2. Text Arranger에서의 기본적인 문자 처리
__3. HTML 폼과 캔버스의 연결
__4. measureText 사용하기
__5. fillText와 strokeText
03-2 문자 폰트 설정
__1. 폰트 크기, 두께, 스타일의 기본
__2. Text Arranger에서 폰트 크기와 종류 설정하기
__3. 폰트 색상
__4. 폰트 기준선과 정렬
__5. Text Arranger 버전 2.0
03-3 문자와 캔버스 컨텍스트
__1. 문자에 투명도 설정하기
__2. 문자에 그림자 설정하기
03-4 문자에 패턴과 그레이디언트 넣기
__1. 선형 그레이디언트와 문자
__2. 방사형 그레이디언트와 문자
__3. 이미지 패턴과 문자
__4. Text Arranger에서 그레이디언트와 패턴 처리하기
03-5 폭, 높이, 스케일, toDataURL( ) 다시 보기
__1. 동적으로 캔버스 크기 조절하기
__2. 동적으로 캔버스 스케일하기
__3. Canvas 객체의 toDataURL( ) 메서드
03-6 Text Arranger 최종 버전
03-7 다음 내용 소개
CHAPTER 04 캔버스에서의 이미지
04-1 기본 파일 형태
04-2 기본적인 이미지 처리
__1. 이미지 미리 불러오기
__2. drawImage( )로 캔버스에 이미지 출력하기
__3. 캔버스에서 이미지 크기 변환하기
__4. 이미지의 일부분을 캔버스로 복사하기
04-3 간단한 셀 스프라이트 애니메이션
__1. 애니메이션 프레임 카운터 만들기
__2. 타이머 만들기
__3. 출력할 타일 바꾸기
04-4 복잡한 셀 애니메이션
__1. 타일 시트 알아보기
__2. 애니메이션 배열 만들기
__3. 출력할 타일 고르기
__4. 타일 반복하기
__5. 타일 그리기
04-5 이미지에 회전 적용하기
__1. 캔버스 변환의 기본
__2. 변환한 이미지에 애니메이션 효과 넣기
04-6 타일로 배경 만들기
__1. 타일 맵 정의하기
__2. Tiled로 타일 맵 만들기
__3. 캔버스에 맵 출력하기
04-7 이미지 축소, 확대, 패닝
__1. 이미지 창 만들기
__2. 이미지 창 그리기
__3. 이미지 패닝
__4. 이미지 축소, 확대, 패닝
__5. 애플리케이션: 축소 확대, 패닝 제어하기
04-8 픽셀 처리
__1. 캔버스 픽셀 처리 API
__2. Tile Stamper 애플리케이션
04-9 한 캔버스에서 다른 캔버스로 복사하기
04-10 다음 내용 소개
CHAPTER 05 수학과 물리학을 적용한 애니메이션
05-1 일직선상으로 움직이기
__1. 두 점 간의 이동: 두 점 사이의 거리 구하기
__2. 벡터에 따른 움직임
05-2 튀는 공 구현하기
__1. 튀는 공 하나
__2. 벽에 맞고 튀는 여러 개의 공
__3. 동적으로 크기가 변환되는 캔버스 상에서 튀는 공들
__4. 튀는 공과 충돌 효과
__5. 튀는 공에 마찰력 적용
05-3 곡선과 회전 이동
__1. 등속 원운동
__2. 간단하게 구현한 나선 모양 움직임
__3. 3차 베지어 곡선
__4. 이미지 움직이기
__5. 3차 베지어 곡선으로 고리 모양 만들기
05-4 기본적인 중력, 탄성, 마찰력 적용
__1. 간단히 중력 적용하기
__2. 중력과 튀는 효과 적용하기
__3. 중력과 탄성을 적용하여 튀는 효과 만들기
__4. 중력, 탄성, 마찰력 간단히 적용하기
05-5 가속도 효과
__1. 감속(우주선 착륙)
__2. 가속(우주선 이륙)
05-6 다음 내용 소개
CHAPTER 06 HTML5 캔버스와 비디오
06-1 HTML5의 비디오 지원
__1. 테오라 + 보비스 = .ogg
__2. H.264 + $$$ = .mp4
__3. VP8 + 보비스 = .webm
__4. 세 가지 형식 모두 사용
06-2 비디오 형식 변환
06-3 기본적인 HTML5 비디오 구현
__1. 평범하고 단순하게 비디오 넣기
__2. 컨트롤, 반복재생, 자동재생 기능 넣기
__3. 비디오의 폭과 높이 바꾸기
06-4 자바스크립트로 비디오 프리로딩 구현
__1. HTML5에서 이벤트와 비디오 간의 문제점
06-5 비디오와 캔버스
__1. HTML5 캔버스에서 비디오 출력하기
__2. HTML5 비디오 속성
06-6 캔버스 상의 비디오 예제 애플리케이션
__1. currentTime 속성을 이용하여 비디오 이벤트 만들기
__2. 캔버스 비디오 변환: 회전
__3. 캔버스 비디오 퍼즐
__4. 캔버스에서 비디오 컨트롤 만들기
06-7 애니메이션 효과 넣기: 움직이는 비디오
06-8 다음 내용 소개
CHAPTER 07 HTML5 캔버스와 오디오
07-1 기본적인 「audio」 태그
07-2 오디오 형식
__1. 오디오 형식 지원
__2. Audacity
__3. 예제 애플리케이션: 세 가지 형식 모두 사용하기
07-3 오디오 태그의 속성, 함수, 이벤트
__1. 오디오 함수
__2. 중요한 오디오 속성
__3. 중요한 오디오 이벤트
__4. 오디오 로딩과 재생
__5. 캔버스에서 특성 출력
07-4 오디오 태그 없이 사운드 재생하기
__1. 자바스크립트를 사용하여 동적으로 오디오 요소 만들기
__2. 지원되는 오디오 형식 알아내기
__3. 사운드 재생하기
__4. 태그가 없어요!
07-5 캔버스 오디오 플레이어 만들기
__1. 캔버스에서 사용자 맞춤 컨트롤 만들기
__2. 버튼 로드하기
__3. 오디오 플레이어의 변수 값 설정하기
__4. 마우스 이벤트
__5. 재생 슬라이더
__6. 재생/일시정지 버튼: 선택 위치 검사법 이용
__7. 반복재생 토글 버튼
__8. 볼륨 슬라이더
07-6 오디오 애플리케이션: 스페이스 레이더스 게임
__1. 애플리케이션에서의 사운드 문제
__2. 여러 버전으로 구현
__3. 스페이스 레이더스 게임의 구조
__4. 버전 1: 하나의 객체로 사운드 재생하기
__5. 버전 2: 무제한적으로 동적 사운드 객체 만들기
__6. 버전 3: 사운드 풀 만들기
__7. 버전 4: 프리로드한 사운드 재사용하기
07-7 다음 내용 소개
CHAPTER 08 캔버스 게임의 핵심
08-1 HTML5에서의 게임
__1. 플래시와 캔버스 비교
__2. 캔버스에서 제공하는 기능
08-2 게임에 사용할 기본 HTML5 파일
08-3 게임 디자인
08-4 게임 그래픽: 패스 이용하기
__1. 필요한 자원
__2. 패스를 이용하여 게임의 주요 캐릭터 그리기
08-5 캔버스에 애니메이션 효과 넣기
__1. 게임 타이머 구현
__2. 플레이어 우주선의 상태 변경
08-6 게임 그래픽에 변환 적용하기
__1. 캔버스 스택
08-7 게임 그래픽 변환
__1. 플레이어 우주선의 중심을 기준으로 회전하기
__2. 플레이어 우주선에 투명도 적용
08-8 물리학을 적용하여 애니메이션 구현
__1. 플레이어 우주선의 이동 원리
__2. 키보드로 플레이어 우주선 제어하기
__3. 플레이어 우주선의 최대 속도 지정
08-9 기본적인 게임 프레임워크
__1. 게임 상태 기계
__2. 갱신/렌더링 반복
__3. FrameRateCounter 객체 프로토타입
08-10 게임 애플리케이션 구현
__1. 지오 블라스터 게임의 구조
__2. 지오 블라스터 게임의 전역 변수
08-11 플레이어 객체
08-12 지오 블라스터 게임 알고리즘
__1. 논리적 출력 객체의 배열
__2. 레벨 스위치
__3. 레벨과 게임의 끝
__4. 보너스 우주선
__5. 충돌 검사 적용
08-13 지오 블라스터 베이직 전체 코드
08-14 암석 객체 프로토타입
08-15 다음 내용 소개
CHAPTER 09 비트맵과 사운드 사용
09-1 지오 블라스터 확장판
__1. 지오 블라스터 타일 시트
__2. 다른 게임 객체 렌더링
__3. 사운드 추가
__4. 객체 인스턴스 풀링
__5. 스텝 타이머 추가
__6. 지오 블라스터 확장판 전체 코드
09-2 실행 중에 동적 타일 시트 만들기
09-3 간단한 타일 기반 게임
__1. 마이크로 탱크 미로 게임의 개요
__2. 게임에서 사용할 타일 시트
__3. 플레이필드
__4. 플레이어
__5. 적군
__6. 목표
__7. 폭발
__8. 턴 방식 게임의 흐름과 상태 기계
__9. 타일 이동 로직의 개요
__10. 렌더링 로직의 개요
__11. 마이크로 탱크 미로에서 사용하는 인공지능
__12. 마이크로 탱크 미로 전체 게임 코드
09-4 다음 내용 소개
CHAPTER 10 폰갭을 이용한 모바일 게임
10-1 가자, 모바일로!
__1. 폰갭 소개
__2. 예제 애플리케이션
__3. 전체 코드
__4. BSBingo.html 코드
__5. 게임 애플리케이션 코드
10-2 폰갭을 이용하여 iOS 애플리케이션 만들기
__1. Xcode 설치하기
__2. 폰갭 설치하기
__3. Xcode에서 BS 빙고 폰갭 프로젝트 만들기
__4. 시뮬레이터에서 테스트하기
__5. BS 빙고를 프로젝트로 통합하기
__6. 출력 방향 설정하기
__7. 배너와 아이콘 변경하기
__8. 시뮬레이터에서 테스트하기
__9. 아이폰에 제스처 추가하기
__10. index.html에 제스처 기능 추가하기
__11. 장비에서 테스트하기
__12. Xcode에서 테스트 장비 지정하기
10-3 캔버스와 모바일
10-4 다음 내용 소개
CHAPTER 11 그 밖의 기술
11-1 WebGL을 이용한 3D
__1. WebGL이란?
__2. WebGL의 지원 여부
__3. WebGL에 대한 정보
__4. WebGL 애플리케이션
__5. 전체 코드
__6. WebGL에 대한 그 밖의 정보
__7. WebGL 자바스크립트 라이브러리
11-2 ElectroServer 5를 이용한 다중 사용자 애플리케이션
__1. ElectroServer 설치하기
__2. 소켓 서버 애플리케이션의 기본 구조
__3. ElectroServer 애플리케이션의 기본 구조
__4. ElectroServer를 이용한 채팅 애플리케이션 만들기
__5. 구글 크롬에서 애플리케이션 테스트하기
__6. ElectroServer의 또 다른 활용
__7. 빙산의 일각
11-3 이 책을 마치며
카테고리 없음