我是一个初学者,正在关注android studio中编写飞扬的小鸟的教程。我对以下代码有2个问题。鸟的第一帧下降10像素(= GRAVITY)。然后,将帧数量乘以每帧10个像素,这样他每帧下降得更快。但是,velocity.scl(1 / dt)的用途是什么?我也可能理解错了吗?为什么下降看起来很平稳?我希望它看起来更震撼,因为小鸟每帧移动很多像素。
if(position.y>0){
velocity.add(0,GRAVITY,0); // bird falls 15 pixels above ground
}
velocity.scl(dt); //multiply gravity with dt (frame) -> gravity gets larger
position.add(0,velocity.y,0);
if(position.y<0){
position.y=0; // bird doesn't fall through ground
}
velocity.scl(1/dt); // what does this do
全鸟类:
private static final int GRAVITY = -10;
private Vector3 position;
private Vector3 velocity;
private Texture bird;
public Bird(int x,int y){
position = new Vector3(x,y,0);
velocity=new Vector3(0,0);
bird = new Texture("flappy-midflap.png");
}
public void update(float dt){
if(position.y>0){
velocity.add(0,0);
if(position.y<0){
position.y=0; // bird doesn't fall through ground
}
velocity.scl(1/dt); // what does this do
}
public void jump(){
velocity.y = 250;
}
public Vector3 getPosition() {
return position;
}
public Texture getTexture() {
return bird;
}