Я не знаю ни одной функции, которая бы делала все, но вы можете умножить силу на window.innerHeight
или window.innerWidth
:
var windowWidth = window.innerWidth;
var windowHeight = window.innerHeight;
var vw = windowWidth/100;
var vh = windowHeight/100;
var jumpForce = vh*-5;
var pushX = vw*0.1;
После этого вы просто применяете jumpForce
кигрок, когда они прыгают, и pushX
игроку, когда они двигаются (вам придется умножить его на -1, когда игрок движется влево).Если вы хотите, чтобы он выглядел еще более согласованным, вы можете jumpForce
использовать vw
вместо vh
и убедиться, что все объекты, созданные в игре, используют vw
для позиционирования и масштабирования.
Независимо от того, используете ли вы только vw
или нет, вам придется преобразовать все значения пикселей в vw
или vh
(в зависимости от того, изменяете ли вы x или y объекта)так это выглядит так:
var object = Bodies.rectangle(vw*60, vw*40, vw*8, vw*5);