Tôi nói "giảm tốc" vì hiện tại tôi không sử dụng gia tốc; ý tôi là di chuyển vận tốc về không, cuối cùng dừng lại.
Tôi chưa quen với vectơ và không tuyệt vời lắm với vật lý. Làm thế nào là "giảm tốc" thường được xử lý?
Những gì tôi có bây giờ hoạt động, nhưng nó có vẻ như là hackish .
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);
}
Tôi đã sử dụng 3 vì bất cứ điều gì thấp hơn thể hiện hành vi kỳ lạ, tôi đoán nếu tôi tăng tốc độ thì nó sẽ cần phải được thay đổi.
velocity.i += speed;
cácspeed
là trong thực tế khả năng tăng tốc của bạn, tức là tỷ lệ mà vận tốc thay đổi theo. :)