Файл: Беляев С А - Разработка игр на языке JavaScript - 2016.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Программирование

Добавлен: 25.10.2018

Просмотров: 7584

Скачиваний: 136

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

6

Глава 1

атрибута charset указывает кодировку, использованную
для написания страницы (в данном примере это 

"UTF-8",

но в случае создания файла в Windows, скорее всего, будет
использована кодировка «Windows1251»). Если сохра
нить приведенный код HTMLстраницы в файле с расши
рением «.html», например, first.html, то его можно будет
открыть с помощью любого браузера. Если кодировка ука
зана не правильно, то пользователь не сможет прочитать
русский текст, это означает, что следует изменить коди
ровку.

HTML — богатый язык, который позволяет отобра

жать большое количество элементов. В рамках учебного
пособия будут использованы только некоторые из них,
необходимые и достаточные для создания однопользова
тельских двумерных интернетигр. Для браузеров, не под
держивающих HTML5, можно использовать тег 

<div>, ко

торый сам по себе без применения специальных настроек
не отображается, но с помощью атрибута style предстает
перед пользователем в самых разных видах. Данный ат
рибут требует от разработчика знания языка разметки CSS
(от англ. Cascading Style Sheets), который активно исполь
зуется для стилизации информации на HTMLстраницах.

Начиная с HTML пятой версии поддерживается гиб

кий элемент canvas, позволяющий отображать графику.
Простейший пример включения элемента canvas в HTML
страницу:

<!DOCTYPE html>

<html>

<head>

<title>Âòîðàÿ ñòðàíèöà</title>

<meta charset="UTF-8">

</head>

<body>

<canvas id="canvasId" width="800" height="600" style=

"border:1px solid black;">

 Âàø áðàóçåð íå ïîääåðæèâàåò ýëåìåíò canvas

 </canvas>

 </body>

</html>


background image

Базовые элементы языка

7

В данном примере открывающий тег 

<canvas> имеет

несколько атрибутов: id — идентификатор, который ис
пользуется для уникального обозначения элемента на стра
нице (элементов может быть множество), width указыва
ет его начальную ширину, height — высоту, style — стиль
отображения (CSS). При сохранении приведенного кода в
HTML и открытии в браузере будет отображена страница
с прямоугольником, нарисованным черным цветом, ко
нечно, если браузер поддерживает canvas. Дело в том, что
данный элемент языка выделяет на экране область, в ко
торую будет выводиться графика, но по умолчанию canvas
пустой. Соответственно, если удалить атрибут style, со
здающий сплошную (solid) рамку (border) толщиной в
1 пиксел (1px) черного цвета (black), то страница ока
жется совершенно пустой. Мы будем называть canvas —
холст.

Следует отметить, что HTML и JavaScript одинаково

обрабатывают одинарные и двойные кавычки, т. е. поме
стить атрибут в одинарные кавычки — это то же самое,
что поместить его в двойные кавычки. Работа с холстом
подробно описана в [1]–[4].

1.2.

ОТОБРАЖЕНИЕ ПРЯМОЙ НА ХОЛСТЕ

Для взаимодействия с холстом требуется знание Java

Script (рис. 1.1). Программирование на JavaScript подроб
но описано в [5], [6].

Рис. 1.1

Отображение прямой в canvas


background image

8

Глава 1

<!DOCTYPE html>

<html>

<body>

<canvas id="canvasId" width="300" height="100"

style="border:1px solid blue;"></canvas>

<script>

// Îáðàùåíèå ê canvas

var canvas = document.getElementById("canvasId");

var ctx = canvas.getContext("2d"); // Îáðàùåíèå ê êîíòåêñòó

ctx.moveTo(50, 70); // Ïåðåìåùåíèå êóðñîðà

ctx.lineTo(100, 50); // Ñîçäàíèå ëèíèè

ctx.stroke(); // Îòîáðàæåíèå ëèíèè

</script>

</body>

</html>

Код JavaScript должен быть описан в рамках элемента

script. Обращение к холсту может выглядеть следующим
образом:

var canvas = document.getElementById("canvasId");

Здесь ключевое слово var используется для обозначе

ния переменной, за ключевым словом следует имя пере
менной, в нашем случае — canvas. Язык JavaScript под
держивает «произвольное» именование переменных, но
рекомендуется давать осмысленные названия, чтобы в
дальнейшем разработчик не запутался, что обозначает
каждая переменная.

Встроенная переменная document указывает на DOM

модель HTMLстраницы. Изучение DOMмодели выходит
за рамки данного учебного пособия. Достаточно знать, что
вызов функции getElementById с указанием в качестве
параметра идентификатора элемента с HTMLстраницы
позволяет получить доступ к этому элементу. В данном
случае — доступ к элементу canvas с идентификатором
"canvasId".

С помощью переменной canvas можно осуществлять

настройки элемента canvas, например, изменить его раз
меры, параметры отображения графики и т. п. Но, соб


background image

Базовые элементы языка

9

ственно, для доступа к 2D графике необходимо создать еще
одну переменную:
var ctx = canvas.getContext("2d");

С помощью ключевого слова var создается переменная

ctx (обычно ее называют «контекст»), в которую сохраня
ется результат вызова функции getContext с параметром
"2d" у переменной canvas.

Теперь создано все необходимое для отображения гра

фики.
ctx.moveTo(50, 70);

С помощью функции moveTo курсор перемещается в

заданные координаты. Здесь необходимо обратить внима
ние, что левый верхний угол имеет координаты (0, 0), уве
личение первой координаты — движение по горизонтали
вправо, увеличение второй координаты — движение по
вертикали вниз. Функция moveTo не приводит к появле
нию видимых линий.
ctx.lineTo(100, 50);

С помощью функции lineTo курсор перемещается с ото

бражением линии в заданные координаты.
ctx.stroke();

Функция stroke делает видимой созданную линию —

рисует контур (см. рис. 1.1).

Важно отметить, что JavaScript различает большие и

маленькие буквы, поэтому var — это ключевое слово, а
Var, VAR, vaR и vAr такими не являются.

1.3.

ОТОБРАЖЕНИЕ

ПРЯМОУГОЛЬНИКА И ЗИГЗАГА

Настройка холста подразумевает задание таких пара

метров, как ширина и высота, шрифт текста, типы ли
ний, цвет и т. п. (рис. 1.2).
<!DOCTYPE html>

<html>

<body>

<canvas id="canvasId" width="300" height="100"


background image

10

Глава 1

style="border:1px solid magenta;"></canvas>

<div id="result"></div>

<script>

var canvas = document.getElementById("canvasId");

var ctx = canvas.getContext("2d");

canvas.width = 200; // Óñòàíîâèòü øèðèíó â 200 ïèêñåëîâ

canvas.height = 90; // Óñòàíîâèòü âûñîòó â 90 ïèêñåëîâ

ctx.strokeStyle = "green"; // Óñòàíîâèòü öâåò ëèíèè - çåëåíûé

ctx.fillStyle  =  "blue";  //  Óñòàíîâèòü  öâåò  çàëèâêè  ôèãóðû -

// ñèíèé

ctx.shadowBlur = 10; // Óñòàíîâèòü ðàçìåð òåíè - 10 ïèêñåëîâ

ctx.shadowColor = "brown"; // Óñòàíîâèòü öâåò òåíè -

// êîðè÷íåâûé

// Îòîáðàæåíèå ïðÿìîóãîëüíèêà (x, y, øèðèíà, âûñîòà)

ctx.rect(10, 30, 80, 40);

ctx.fill(); // Çàïîëíèòü öâåòîì

ctx.stroke(); // Îòîáðàçèòü êîíòóð

</script>

</body>

</html>

Здесь canvas.width позволяет проверять или устанав

ливать значение ширины элемента canvas, canvas.height
позволяет аналогично работать с высотой. При работе с
контекстом (переменная ctx) есть возможность настраи
вать цвет линии (strokeStyle), цвет заполнения фигуры
(fillStyle), размер тени (shadowBlur), цвет тени (shadow
Color
), с помощью функции rect(x, y, ширина, высота) ото
бражать прямоугольники и заполнять их цветом — функ
ция fill().

Рис. 1.2

Отображение прямоугольника в canvas