如果相机静止且环境从上到下移动,我正在制作一场无尽的亚军游戏,玩家是一个朝上的火箭,只能向左或向右移动。当玩家与障碍物碰撞时,它会产生粒子以显示爆炸。我想要的是显示在相机向上移动时留下的粒子的错觉。但是因为我的相机是静态的,所以我必须自己向后移动它们以给出相机上升的幻觉我该怎么做呢?
这是我的代码:
public Particle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
rotDirection = MathUtils.random.nextBoolean() ? -1 : 1;
dx = MathUtils.cos(MathUtils.random(MathUtils.PI2));
dy = MathUtils.sin(MathUtils.random(MathUtils.PI2));
xSpeed = MathUtils.random(MIN_SPEED, MAX_SPEED);
ySpeed = MathUtils.random(MIN_SPEED, MAX_SPEED);
rotation = MathUtils.random(360);
rotationSpeed = MathUtils.random(MIN_ROT_SPEED, MAX_ROT_SPEED);
}
public void update(float delta){
x += dx * xSpeed * delta;
y += dy * ySpeed * delta;
rotation += rotDirection * rotationSpeed * delta;
}
答案 0 :(得分:0)
您正在使用randoms来设置dy和ySpeed。 然后使用这2个随机值和deltaTime更改y值。 如果要沿特定方向移动粒子,则无法使用随机值移动粒子。
尝试使用浮动yMoveSpeed并将其添加到y。
public void update(float delta){
x += dx * xSpeed * delta;
y += dy * ySpeed * delta;
rotation += rotDirection * rotationSpeed * delta;
y += yMoveSpeed * delta;
}
至少应该让它向一个方向发展。
另一种解决方案可能是使用与libgdx捆绑在一起的粒子系统和编辑器。 (在gdx-tools中) Game From Scratch tutorial