我正在使用一个粒子系统,并且当它创建粒子时它会传递一个起始的x和y值,并且从那里我得到一个角度到我想要射击粒子但我需要它所以我有一个垂直速度和水平速度,我能做什么?
黑客攻击我的粒子:
Particle(int x, int y,int x2,int y2) {
this.x = x;
this.y = y;
this.state = BulletParticle.STATE_ALIVE;
this.widht = MAX_DIMENSION;//rndInt(1, MAX_DIMENSION);
this.height = this.widht;
// this.height = rnd(1, MAX_DIMENSION);
this.lifetime = DEFAULT_LIFETIME;
this.age = 0;
this.xv = x2;//(rndDbl(0, MAX_SPEED * 2) - MAX_SPEED);
this.yv = y2;//(rndDbl(0, MAX_SPEED * 2) - MAX_SPEED);
// smoothing out the diagonal speed
if (xv * xv + yv * yv > MAX_SPEED * MAX_SPEED) {
xv *= 0.7;
yv *= 0.7;
}
答案 0 :(得分:0)
计算出粒子穿过整个宽度或高度的时间长度,然后使用s = 0.5 * a * t ^ 2 + v0 * t计算出初始速度v {0 {{3 }})。
如果它没有加速或减速,你可以使用s = v0 * t ...