package test;
/**
* o_o ....
* Created by teemo on 2018/4/19.
*/
public class Sprite {
private double x;
private double y;
private double vx = 100; //水平速度
private double vy = 100; //垂直速度
double a = 10; //垂直加速度
public Sprite(double x, double y) {
this.x = x;
this.y = y;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getVx() {
return vx;
}
public void setVx(double vx) {
this.vx = vx;
}
public double getVy() {
return vy;
}
public void setVy(double vy) {
this.vy = vy;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
}
private static double FR = 100; //帧率
double newX = sprite.getX() + sprite.getVx() * (FR / 1000);
double newY = sprite.getY() - sprite.getVy() * (FR / 1000);
double vy = sprite.getVy() - Math.pow(sprite.getA(), 2) * (FR / 1000);
初始水平速度 vx=100m/s
初始垂直速度 vy=100m/s
垂直加速度 a=10m/s^2
帧率 fr=100ms
每帧根据vx*fr 和 vy*fr计算出新的x,y坐标 并更具a去更新vy的值
如果曲线要好看的话给a加一个参数,意为加速度会变