Создание html игр на элементе canvas презентация

Содержание

ПРИЕМУЩЕСТВА HTML5 ПЕРЕД FLASH Открытость платформы Чистая веб-технология Более высокие надёжность, производительность и безопасность Более низкое энергопотребление Поддержка управления, с помощью сенсорных экранов

Слайд 1СОЗДАНИЕ HTML ИГР НА ЭЛЕМЕНТЕ CANVAS


Слайд 2ПРИЕМУЩЕСТВА HTML5 ПЕРЕД FLASH
Открытость платформы
Чистая веб-технология
Более высокие надёжность, производительность и безопасность
Более

низкое энергопотребление
Поддержка управления, с помощью сенсорных экранов


Слайд 3ИСТОРИЯ HTML5


Слайд 4ПОДДЕРЖКА БРАУЗЕРАМИ


Слайд 5ОБЪЯВЛЕНИЕ ЭЛЕМЕНТА
Для объявления используется тег

Your browser doesn’t support canvas

element


canvas = document.getElementById('canvas');
if (canvas.getContext)
{ //Canvas поддерживается
}
else
{ //Canvas не поддерживается
}

Слайд 6СОЗДАНИЕ ПРИМИТИВОВ
beginPath()
moveTo(x, y)
lineTo(x, y)
stroke()
var canvas = document.getElementById(canvas);
var context = canvas.getContext(‘2d’);
context.beginPath();
context.moveTo(10, 20);
context.lineTo(20,

30);
context.stroke();

Слайд 7РАБОТА С КРИВЫМИ
quadricCurveTo(cpx, cpy, x, y)
bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x, y)
arcTo(x1,

y1, x2, y2, radius)



Слайд 8СТИЛИЗАЦИЯ ЛИНИЙ
lineWidth
lineJoin
strokeStyle


Слайд 9РАБОТА С ЦВЕТОМ
fillStyle
fillRect(x, y, width, height)
clearRect(x, y, width, height)


Слайд 10РАБОТА С ГОТОВЫМ ИЗОБРАЖЕНИЕМ
drawImage(image, x, y, width, height)

var image = new

Image();
image.src = ‘image.jpg’;
image.onload = function()
{
drawImage(image, 5, 10, 100, 100);
}

Слайд 11ГРАДИЕНТ
createLinearGradient(x0, x1, y0, y1)
addColorStop(gradientPart, color)
createRadialGradient(x0, y0, r0, x1, y1, r1);

var gradient

= createLinearGradient(0, 0, 100, 1000);
gradient.addColorStop(0, rgb(255, 0, 0));
gradient.addColorStop(0.5. rgb(0, 255, 0));
gradient.addColorStop(1 rgb(0, 0, 255));
context.fillStyle = gradient;
context.fillRect = (0, 0, 100, 100);

Слайд 12ИЗОБРАЖЕНИЯ - ШАБЛОНЫ
createPattern(Image, repeat)
repeat
repeat-x
repeat-y
norepeat
var image = new Image();
image.src = ‘image.jpg’;
Image.onload =

new function()
{
context.strokeStyle = context.createPattern(image, ‘repeat’);

Слайд 13ОСНОВНЫЕ ГРАФИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ
translate(x, y)
scale(x, y)
rotate(cornerRadian)
save()
restore()


Слайд 14РАБОТА С ТЕКСТОМ
textAlign
font
textBaseLine
strokeText(text, x, y, maxWidth)
fillText(text, x, y, maxWidth)

context.textAlign = ‘center’;
context.font

= ‘Arial’;
context.strokeText(“Hello world!”, 0, 0, 300);


Слайд 15РАБОТА С ТЕНЬЮ
shadowColor
shadowOffsetX
shadowOffsetY
shadowBlur


Слайд 16РАБОТА С ПИКСЕЛЯМИ ИЗОБРАЖЕНИЯ
getImageData(x, y, width, height)
width
height
data
R = ((width * y)

+ x) * 4
G = (((width * y) + x) * 4) + 1
B = (((width * y) + x) * 4) + 2
Alpha = (((width * y) + x) * 4) + 3
putImageData(imageData, dx, dy)

Слайд 17СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». СОЗДАНИЕ ФОРМЫ


Snake


onload="init()">







Слайд 18СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
var snakeColor = "rgb(0, 0, 0)";
var bckColor

= "rgb(255, 255, 255)";
var foodColor = "rgb(0, 255, 0)";
var ctx;
var gridSize = 20;
var snake;
var food = [];
var direction;
var changex = [-1, 0, 1, 0];
var changey = [0, -1, 0, 1];
var paused;
var speed = 100;
var clock;

Слайд 19СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ОТРИСОВКА ЭЛЕМЕНТОВ
function drawSnake()
{
ctx.fillStyle = snakeColor;

ctx.fillRect(snake[snake.length - 1][0] * gridSize, snake[snake.length - 1][1] * gridSize, gridSize, gridSize);
}
function drawFood()
{
ctx.fillStyle = foodColor;
ctx.fillRect(food[0] * gridSize, food[1] * gridSize, gridSize, gridSize);
}

function delPart(x, y)
{
ctx.fillStyle = bckColor;
ctx.clearRect(x * gridSize, y * gridSize, gridSize, gridSize);
}

Слайд 20СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ПРОВЕРКА НА ПРИНАДЛЕЖНОСТЬ ТОЧКИ ТЕЛУ ЗМЕЙКИ
function dotBelongSnake(x, y)
{

res = false;
for(i = 0; i < snake.length && !res; ++i)
{
res = x == snake[i][0] && y == snake[i][1];
}
return res;
}

Слайд 21СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ДОБАВЛЕНИЕ ЭЛЕМЕНТОВ
function setX(x)
{
return x >= 0

? x % (ctx.canvas.width / gridSize) : x + (ctx.canvas.width / gridSize);
}

function setY(y)
{
return y >= 0 ? y % (ctx.canvas.height / gridSize) : y + (ctx.canvas.height / gridSize);
}

function addFood()
{
do{
food[0] = Math.floor(Math.random() * (ctx.canvas.height / gridSize));
food[1] = Math.floor(Math.random() * (ctx.canvas.height / gridSize));
}while(dotBelongSnake(food[0], food[1]));
drawFood();
}

Слайд 22СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ПРОВЕРКА НА СТОЛКНОВЕНИЕ
function crash()
{
res = false;

for(i = 0; i < snake.length - 1 && !res; ++i)
{
res = snake[i][0] == snake[snake.length - 1][0] && snake[i][1] == snake[snake.length - 1][1];
}
return res;
}

Слайд 23СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». УПРАВЛЕНИЕ СОСТОЯНИЕМ ИГРЫ
function play()
{
if(paused)
{

clock = setInterval(movement, speed);
}
else
{
clearInterval(clock);
}
paused = !paused;
}



Слайд 24СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ОСНОВНОЙ ИГРОВОЙ ЦИКЛ
function movement()
{
snake.push([setX(snake[snake.length - 1][0]

+ changex[direction]), setY(snake[snake.length - 1][1] + changey[direction])])
if(!dotBelongSnake(food[0], food[1]))
{
delPart(snake[0][0], snake[0][1]);
snake.shift();
}
else
{
addFood();
}
if(crash())
{
play();
alert("Game Over;");
clear();
init();
}
drawSnake();
}

Слайд 25СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». УПРАВЛЕНИЕ
function changeDirection(event)
{
if(!paused)
{

code = 0
if(event == null)
{
code = window.event.keyCode;
}
else
{
code = event.keyCode;
}
switch(code)
{
case 37:
if(direction != 2)
{
direction = 0;
}
break;
case 38:
if(direction != 3)
{
direction = 1;
}
break;
case 39:
if(direction != 0)
{
direction = 2;
}
break;
case 40:
if(direction != 1)
{
direction = 3;
}
break;
}
}
}

Слайд 26СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ИНИЦИАЛИЗАЦИЯ
function init()
{
canvas = document.getElementById('canvas');
if

(canvas.getContext)
{
snake = [[0, 0]];
direction = 2;
paused = true;
ctx = canvas.getContext('2d');
document.onkeydown = function (event)
{
changeDirection(event);
};
addFood();
return true;
}
else
{
alert(“Canvas isn’t supported!");
return false;
}
}


Слайд 27СОЗДАНИЕ ИГРЫ «ЗМЕЙКА». ГОТОВАЯ ИГРА


Слайд 28СПИСОК ИСТОЧНИКОВ
http://evolutionofweb.appspot.com
http://caniuse.com
http://www.apple.com/hotnews/thoughts-on-flash/
Лабберс П., Олберс Б., Салим Ф. HTML5 для профессионалов


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика