Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2017, 22:09
Новичок на форуме
Отправить личное сообщение для Omnia Посмотреть профиль Найти все сообщения от Omnia
 
Регистрация: 29.09.2017
Сообщений: 6

canvas снеговик
Добрый вечер! Помогите пожалуйста! Написал программу. При корректной работе должна быть нарисована голова снеговика, которая должна двигаться от левого края к правому и обратно. Помогите пожалуйста исправить код. Заранее спасибо.

<!DOCTYPE html!>
<html>
<head>
  <meta charset = "UTF-8">
  <title>Canvas</title>
</head>
<body>

<canvas id = "canvas" width="300" height="300" style = "border: 1px solid;"></canvas>

<script>

</script>

</body>
</html>

[JS]var gameEngine;
var nextGameStep;

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

var x = 10;
var y = 10;

var circle = function (x, y, radius, fillCircle) {
  ctx.beginPath();
  ctx.arc(x, y, radius, 0, Math.Pi * 2, false);
  if (fillCircle) {
    ctx.fill();
  } else {
    ctx.stroke();
  }
};

var drawSnowmanHead = function (x, y) {
  ctx.fillStyle = "Black";
  ctx.lineWidth = 4;

  circle(x, y, 30, false);
  circle(x, y, 5, true);
  circle(x, y, 5, true);

  ctx.fillStyle = "Orange";
  circle(x, y, 5, true);
};

var nextGameStep = (function () {
  return requestAnimationFrame ||
  webkitRequestAnimationFrame  ||
  mozRequestAnimationFrame     ||
  oRequestAnimationFrame       ||
  msRequestAnimationFrame      ||
  function (callback) {
   setTimeout(callback, 1000 / 60);
  };
})();

var gameEngineStart = function(callback) {
  gameEngine = callback;
  gameEngineStep();
};

var gameEngineStep = function() {
  gameEngine();
  nextGameStep(gameEngineStep);
};

var setGameEngine = function (callback) {
  gameEngine = callback;
};

var gameLoopRight = function() {
  drawSnowmanHead();
  x += 3;
  if (x >= 250) {
  setGameEngine(gameLoopLeft);
  }
};

var gameLoopLeft = function() {
  drawSnowmanHead();
  x -= 3;
  if (x < 0) {
    setGameEngine(gameLoopRight);
  }
};

gameEngineStart(gameLoopRight);

Последний раз редактировалось Omnia, 21.10.2017 в 22:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли использовать анимацию svg внутри canvas? Negotiant Общие вопросы Javascript 0 30.08.2017 10:56
Canvas функции и JQ Tanya51 Общие вопросы Javascript 5 29.07.2017 14:41
Повтор фото (getUserMedia(),HTML5 Canvas) aspex Элементы интерфейса 1 27.12.2014 16:46
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16