Как запускать ключевые события в p5.js

#javascript #processing #p5.js

#javascript #обработка #p5.js

Вопрос:

Я хочу, чтобы мой код нажимал клавиши клавиатуры, если в библиотеке p5js выполняется определенное условие. Например:

 a = true

if (a) {
  // Press UP Key
} else {
  // Press DOWN Key
}
  

Комментарии:

1. Почему вы хотите имитировать нажатие клавиши?

2. Я использую PoseNet для игры с использованием движений тела. Поэтому, когда моя рука движется вправо, я хочу, чтобы была нажата ПРАВАЯ СТРЕЛКА.

3. Просто извлеките логику из обработчиков нажатия клавиш, чтобы они были разделены функциями. Затем, когда возникает ваше «условие», вызовите функцию (ы).

4. используя keyPressed(), вы можете добавить всю свою логику внутрь этой функции. Проверьте ссылку ниже. p5js.org/reference/#/p5/keyPressed

5. @SamsonIyanda Нажатие клавиши () полезно, когда я нажимаю клавишу на клавиатуре. Я хочу, чтобы код вручную нажимал клавишу, если выполняется условие.

Ответ №1:

P5.js это библиотека JavaScript, поэтому, если вы не можете найти решение в p5.js , вы можете выполнить поиск по чему-то вроде «Нажатие клавиши запуска JavaScript» для получения тонны результатов.

Другой вариант — установить p5.js переменные, на которые вы ссылаетесь вручную, а затем вызываете keyPressed() функцию самостоятельно. Что-то вроде этого:

 let fillVal = 126;

function draw() {
  fill(fillVal);
  rect(25, 25, 50, 50);
}

function keyPressed() {
  if (keyCode === UP_ARROW) {
    fillVal = 255;
  } else if (keyCode === DOWN_ARROW) {
    fillVal = 0;
  }
  return false; // prevent default
}

function mousePressed() {
  keyCode = UP_ARROW;
  keyPressed();
}
  

Вероятно, лучшим вариантом является то, что klimat предложил в комментариях: извлеките свою логику в функцию, которую вы вызываете как из keyPressed() функции, так и из любого места, где вы хотите имитировать нажатие клавиши.

Комментарии:

1. Я хочу, чтобы правая клавиша была нажата, когда значение установлено в true, и это нажатие правой клавиши изменит положение моего объекта в игре (онлайн-игра, созданная не мной). Таким образом, функция keyPressed() для меня бесполезна.

2. @YashKhasgiwala Тогда лучшее, что я могу сделать, это порекомендовать поиск в Google для чистого решения JavaScript. Однако вам, вероятно, следует включить эту информацию в свой вопрос.

3. Я использовал — document.dispatchEvent(new KeyboardEvent(‘keydown’, { keyCode: 70, ctrlKey: true })); в моем операторе if, чтобы нажать Cntrl F из кода. Это не сработало.