Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 27.09.2018, 18:34
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

SuperZen, а где вы учились использовать эти фреймворки? Я не могу найти русскоязычных ресурсов или хотя бы видео-уроков.
Ответить с цитированием
  #22 (permalink)  
Старый 27.09.2018, 18:35
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Dilettante_Pro,
Здесь не работало ...я его не копипастил никуда.
Ответить с цитированием
  #23 (permalink)  
Старый 27.09.2018, 18:52
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

рони, чё-то я напортачил. Вышло то же, что и было.
Буду дальше голову ломать.

P.S.: Ваш вариант не ходит по диагонали. Или всё таки я где-то СИЛЬНО напортачил.

Последний раз редактировалось drakulawz, 27.09.2018 в 19:02.
Ответить с цитированием
  #24 (permalink)  
Старый 27.09.2018, 19:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от drakulawz
Ваш вариант не ходит по диагонали.
ходит, жмите две кнопки одновременно резче
Ответить с цитированием
  #25 (permalink)  
Старый 27.09.2018, 20:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от drakulawz
по диагонали
или так с setTimeout
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
    try {
  'code' in KeyboardEvent.prototype || Object.defineProperty(KeyboardEvent.prototype, 'code', {
    get: function () { return { 37: 'ArrowLeft', 38: 'ArrowUp', 39: 'ArrowRight', 40: 'ArrowDown' }[this.keyCode] }
  })
} catch (e) {}

  </script>
</head>

<body>
<canvas width="200" height="100" id="myCanvas" style="border: 1px solid red"></canvas>
<script>
var canvas  = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var rec = {};
  rec.x = 10;
  rec.y = 10;
  rec.width = 50;
  rec.height = 25;
  rec.step = 5;
  rec.color = 'red';
  rec.moveup = function () {
    this.y = Math.max(this.y - this.step, 0);
  };
  rec.movedown = function () {
    this.y = Math.min(this.y + this.step, canvas.height - this.height);
  };
  rec.moveleft = function () {
    this.x = Math.max(this.x - this.step, 0);
  };
  rec.moveright = function () {
    this.x = Math.min(this.x + this.step, canvas.width - this.width);
  };
  rec.draw = function () {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.fillStyle = this.color;
    ctx.fillRect(this.x, this.y, this.width, this.height);
  };
  rec.draw();
  var move = {};
  var timer;
  document.onkeydown = function (e) {
    e.preventDefault();
    if(move[e.code]) return;
    if (e.code == 'ArrowUp')  {rec.moveup();move.ArrowUp = true }
    else if (e.code == 'ArrowDown') {rec.movedown();move.ArrowDown = true }
    else if (e.code == 'ArrowLeft')  {rec.moveleft();move.ArrowLeft = true}
    else if (e.code == 'ArrowRight') {rec.moveright();move.ArrowRight = true}
    else return;
    window.clearTimeout(timer);
    timer = window.setTimeout(rec.draw.bind(rec), 120);
  };
  document.onkeyup = function (e) {
    if (e.code == 'ArrowUp')    move.ArrowUp = false;
    else if (e.code == 'ArrowDown')  move.ArrowDown = false;
    else if (e.code == 'ArrowLeft')  move.ArrowLeft = false;
    else if (e.code == 'ArrowRight') move.ArrowRight = false;
  };

</script>


</body>
</html>
Ответить с цитированием
  #26 (permalink)  
Старый 28.09.2018, 13:13
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Сообщение от drakulawz Посмотреть сообщение
SuperZen, а где вы учились использовать эти фреймворки? Я не могу найти русскоязычных ресурсов или хотя бы видео-уроков.
читаю все на английском...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Акардион меню из чекбоксов и списка, как сделать подсветку текущего элемента OliLoi jQuery 0 08.11.2016 08:15
Как сделать чтобы кнопка «Назад» работала бы в пределах определенного сайта? Askeer Общие вопросы Javascript 7 14.10.2016 12:23
Как сделать чтобы кнопка «Назад» работала бы в пределах определенного сайта? Askeer Общие вопросы Javascript 0 12.10.2016 18:58
как сделать чтобы в popup окне показывалось картинка? sarik Общие вопросы Javascript 31 15.03.2013 13:12
Как отследить нажатие клавиш <Alt>+<N> в Opera? alex77 Opera, Safari и др. 8 02.10.2010 16:08