HTML5, CSS и JavaScript Создание игр

У меня есть игра, которую я сделал с помощью HTML5, CSS и JavaScript. У меня есть HTML-теги изображений стрелок джойстика. Я хотел бы, чтобы пользователи могли щелкать мышью изображения стрелок на моем джойстике и работать так, как если бы стрелки на клавиатуре были нажаты. Как заставить keyCode 39 срабатывать при щелчке по изображению стрелки вправо? Я написал такой код, но он не работает:

var $rt_arrow = $('.rt_arrow') 

$rt_arrow.on('click' , function (e) {
    e.keyCode == 39 
}) 

Возможный дубликат вызвать нажатие клавиши при событии щелчка

Mukyuu 17.12.2018 08:11
XY проблема. Вместо этого создайте функцию goRight и вызовите ее как на keyDown, так и на mouseDown. Нет причин, по которым щелчок мыши запускает ключевое событие.
Amadan 17.12.2018 08:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
69
2

Ответы 2

Я считаю, что это то, что вы ищете http://www.port135.com/2017/12/24/how-to-simulate-keyboard-key-press-in-javascript-using-jquery/

Я не тестировал это, поэтому я не уверен на 100%, хотя это кажется довольно простым.

Так что вместо:

    e.keyCode == 39

Ставить:

    jQuery.event.trigger({ type: 'keydown', which: 39 });

Вместо того, чтобы размещать что-то, что еще не было протестировано и может вводить в заблуждение, сначала проверьте это самостоятельно.

Andreas 17.12.2018 08:19

Вы столкнулись с XY проблема.

В этом случае вы не хотите запускать событие клавиатуры, вы просто хотите, чтобы событие мыши запускало то же действие, что и событие клавиатуры.

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

onkeydown = e => {
  if (e.key === 'ArrowLeft') goLeft();
  else if (e.key === 'ArrowRight') goRight();
  // ...
};
onclick = e => {
  if (e.target === left_arrow) goLeft();
  else if (e.target === right_arrow) goRight();
  // ...
};

Другие вопросы по теме