如何在游戏中实现物体运动的摩擦

时间:2018-08-31 15:29:26

标签: javascript math game-physics

以下是我用于移动对象的代码:

let XX = 0
let YY = 0
let maxSpeed = 100;

if(keyDown.w) {
    XX += Math.sin(angle*Math.PI/180)*moveSpeed;
    YY += -Math.cos(angle*Math.PI/180)*moveSpeed;
}

当对象开始移动时,我试图在其中实现摩擦。就像键按下时一样,速度开始加快,并且花了 n 秒才达到maxSpeed
我该怎么办?

1 个答案:

答案 0 :(得分:1)

似乎不需要摩擦,而只需加速。这是由于恒定的电动机功率而产生的恒定加速度:

let XX = 0
let YY = 0
let moveSpeed = 0;
let Accel = 2;
let maxSpeed = 100;

if(keyDown.w) {
    moveSpeed = Math.min(maxSpeed, moveSpeed + Accel);
    XX += Math.sin(angle*Math.PI/180)*moveSpeed;
    YY += -Math.cos(angle*Math.PI/180)*moveSpeed;
}