Беда с координатами в canvas на Js

Есть набросок логики платформера. Пока работаю над осью y. Беда в том, что при соприкосновении с препятствием, скорость игрока приравнивается к нулю через метод window.requestAnimationFrame(), и слушатель keydown на клавишу "Вверх", который прибавляет к скорости игрока -10, не успевает это сделать, и персонаж не прыгает. Ссылка на codepen внизу. Подскажите решение, или объясните, как к этому можно подойти с другой стороны.

https://codepen.io/Jizzybole/pen/qBNLoGg

    obstacles.forEach(function (o) {
        if (p.y+p.h>o.y&&p.y<o.y+o.h&&p.x+p.w+1>o.x-1&&p.x-1<o.x+o.w+1) {p.sy=0; p.y=o.y-p.h; p.jump = false}

        if (p.y<o.y+o.h&&p.y+p.h>o.y&&p.x+p.w+1>o.x-1&&p.x-1<o.x+o.w+1) {p.sy=0; p.y=o.y+o.h; p.jump = false}
    })

Может, можно что-то сделать с этим куском кода для решения проблемы?


Ответы (0 шт):