Как мне симулировать поведение человека со стороны клиента javascript, чтобы играть в игру fla sh? - PullRequest
1 голос
/ 21 марта 2020

Мое намерение:

Допустим, у вас есть два игрока, A и B, которые играют в одну и ту же игру sh, встроенную в их страницу, но на двух разных компьютерах.

Если игрок A нажимая «W», чтобы прыгать, или нажимая «PLAY», чтобы прыгать, игрок B должен увидеть то же самое движение в своем браузере.

Что я уже пробовал:

const game = document.getElementById('game');

var e = null;
game.addEventListener('keydown', (event) => {
    if (event.keyCode == 37) {
        console.log('Left was pressed');
    } else if (event.keyCode == 39) {
        console.log('Right was pressed');
    };
    e = event;
});

У меня есть отправил это событие игроку B (используя сокеты)

e = // get it from player A
game.dispatchEvent(e)

Это не работает. Я считаю, что мне нужна какая-то клиентская вещь на стороне селена, чтобы я мог имитировать реальные нажатия клавиш на элементах html (в моем случае это игра fla sh). Однако я не смог найти его.

Есть ли способ сделать то, что я хочу?

1 Ответ

0 голосов
/ 21 марта 2020

По сути, вы можете создать новое событие ('keydown'), см. this . На SO вы уже можете видеть вопросы о программном вызове события клавиатуры, см. this . Однако вы намереваетесь экспортировать событие, отправить его и импортировать. Насколько я знаю, вам нужно будет выполнить экспорт, а также импорт. Но если вам удастся правильно экспортировать нужные значения, то создание события не должно быть очень трудным.

Однако я советую вам отделить обработку событий от функций, которые могут запускаться событиями. Рефакторинг вашего кода намного мудрее, чем ваш нынешний подход, поэтому функциональные возможности могут быть выполнены без хакерского создания события, а затем вы можете просто вызвать свои функциональные возможности. Для этого вам необходимо установить связь между Fla sh и Javascript, см. здесь , и вы также можете рассмотреть возможность использования WebSockets для улучшения сетевого протокола, чтобы помочь вам в игре. проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...