如何在libgdx

时间:2016-06-16 14:02:12

标签: java android libgdx

如果相机静止且环境从上到下移动,我正在制作一场无尽的亚军游戏,玩家是一个朝上的火箭,只能向左或向右移动。当玩家与障碍物碰撞时,它会产生粒子以显示爆炸。我想要的是显示在相机向上移动时留下的粒子的错觉。但是因为我的相机是静态的,所以我必须自己向后移动它们以给出相机上升的幻觉我该怎么做呢?

这是我的代码:

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;
}

1 个答案:

答案 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