Saya katakan "deselerasi" karena saya tidak menggunakan akselerasi saat ini; yang saya maksud adalah menggerakkan kecepatan kembali ke nol, akhirnya berhenti.
Saya baru mengenal vektor dan tidak terlalu hebat dalam fisika dan sebagainya. Bagaimana biasanya "deselerasi" ditangani?
Apa yang saya miliki sekarang berfungsi, tetapi sepertinya agak retas .
update:function(Game, t, dt) {
var speed = Game.Input.isKeyDown('shift') ? 8 : 4;
if (Game.Input.isKeyDown('a')) {
this.velocity.i -= speed;
}
else if (Game.Input.isKeyDown('d')) {
this.velocity.i += speed;
}
else {
if (Math.abs(this.velocity.i) > 3) {
this.velocity.i += (this.velocity.i > 0) ? -speed : speed;
}
else {
this.velocity.i = 0;
}
}
if (Game.Input.isKeyDown('w')) {
this.velocity.j -= speed;
}
else if (Game.Input.isKeyDown('s')) {
this.velocity.j += speed;
}
else {
if (Math.abs(this.velocity.j) > 3) {
this.velocity.j += (this.velocity.j > 0) ? -speed : speed;
}
else {
this.velocity.j = 0;
}
}
this.updateVectors(dt);
}
Saya menggunakan 3 karena apapun yang lebih rendah menunjukkan perilaku aneh, saya menduga jika saya meningkatkan kecepatan maka itu perlu diubah.
velocity.i += speed;
yangspeed
sebenarnya percepatan Anda, yaitu tingkat yang kecepatan perubahan oleh. :)