LibGDX弹跳球

时间:2014-12-19 13:13:58

标签: java android libgdx

我想创造一个无限的弹跳球。现在我只是试图在Y上弹跳(向上和向下)。

这是我的 GameWorld类,您可以看到有一种方法碰撞来检测碰撞,但如何使“圈”上去?

public class GameWorld {

    private Circle rond;
    private Rectangle rect;

    public GameWorld(int midPointY) {
        rond = new Circle(100, midPointY - 5, 5);
        rect = new Rectangle(0, 200, Gdx.graphics.getWidth(), 5);
    }

    public void update(float delta) {

        if(collides(rond)){

        }else
            rond.y++;

    }

    public boolean collides(Circle rond) {
        if (rect.y < rond.y + (rond.radius)*2) {
            return (Intersector.overlaps(rond, rect));
        }
        return false;
    }

    public Circle getRond() {
        return rond;

    }

    public Rectangle getRect() {
        return rect;
    }

}

当然,我有另一个GameRenderer类来渲染这两个对象

1 个答案:

答案 0 :(得分:0)

通常,您可以使用任何物理类型来存储对象的速度及其位置。这样,每次通过更新循环,您只需要通过y速度更改y位置。发生碰撞时,您需要做的就是计算新的yspeed并更新rond

public void update(float delta) {
    if(collides(rond)){
        rond.yspeed = -rond.yspeed;
    }else{
        rond.y+=rond.yspeed*delta;
    }
}