Я делаю довольно простую задачу - побить игру Chrome Dino простым JS-скриптом.Вы можете найти его либо в chrome: // dino / или https://chromedino.com/ Моя диспетчеризация событий прыжка / кактуса работает нормально, но моя "утка" удерживает и не просто нажимает, и я понятия не имею, как отлаживать /выясните, почему его удерживают, а не просто нажимают.
Любая помощь будет принята, это всего лишь небольшой простой проект, ничего серьезного
// A JS script made for the offline Chrome dino game. Accessible from either chrome://dino/ or https://chromedino.com/
var canvas = document.getElementsByTagName("canvas")[0],
ctx = canvas.getContext("2d"); // Return the drawing context of the canvas
(function recurse(){
// Reduce the Uint8ClampedArray into a number. If it isn't zero, there's an obstacle
// This is the cactus jump
let cactus = (ctx.getImageData(85,118,60,1).data).reduce(reducer);
// This is the duck, when the Pterodactyl comes
let pterodactyl = (ctx.getImageData(90,85,1,1 ).data).reduce(reducer);
if(cactus){
var e = new KeyboardEvent('keydown',{'keyCode':38,'which':38});
document.dispatchEvent(e);
console.log(cactus)
} else if(pterodactyl){
var e = new KeyboardEvent('keydown',{'keyCode':40,'which':40});
document.dispatchEvent(e);
}
setTimeout(recurse, 50);
})();
function reducer(a,b){
return a + b
}
Я проверил, что событие клавиатуры нестреляю KeyboardEvent.repeat
из https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent и это не так