Box2D中的实体数组(Java)

Box2D中的实体数组(Java),java,box2d,Java,Box2d,我对Box2D非常陌生,几乎没有编程经验,所以请耐心等待。目前我正在开发一款小型突破游戏。类似于这个游戏的一个非常简单的版本: 这是我所在大学的一项运动。在这一点上,我已经创建了桨、球和墙。现在我想制作砖块。我的问题是我不知道如何组织它们。我考虑为砖块创建一个类,在构造函数中为一块砖块的实际位置创建两个浮动。然后我想创建brick类的数组 此时,我的代码如下所示: private Body brickBody; private PolygonShape brickShape; private B

我对Box2D非常陌生,几乎没有编程经验,所以请耐心等待。目前我正在开发一款小型突破游戏。类似于这个游戏的一个非常简单的版本:

这是我所在大学的一项运动。在这一点上,我已经创建了桨、球和墙。现在我想制作砖块。我的问题是我不知道如何组织它们。我考虑为砖块创建一个类,在构造函数中为一块砖块的实际位置创建两个浮动。然后我想创建brick类的数组

此时,我的代码如下所示:

private Body brickBody;
private PolygonShape brickShape;
private BodyDef brickBodyDef;
private Fixture brickFixture;
Physik phy;


public CleverBrick(float a, float b, final Physik p) {


    brickBodyDef = new BodyDef();
    brickBodyDef.type = BodyType.StaticBody;
    brickBodyDef.position.set(new Vector2(a,b));
    phy =p;

    brickBody = Physik.getWorld().createBody(brickBodyDef);

    brickShape = new PolygonShape();
    brickShape.setAsBox(30,5);


    Fixture brickFixture = brickBody.createFixture(brickShape, 0.0f);
    brickFixture.setUserData("The brick");

}


public void destroyBrick() {
    brickBody.destroyFixture(brickFixture);
}


public Body getBrickbody() {
    return brickBody;
}


public void setBrickbody(Body brickbody) {
    this.brickBody = brickbody;
}
public PolygonShape getBrickShape() {
    return brickShape;
}
public void setBrickShape(PolygonShape brickShape) {
    this.brickShape = brickShape;
}


public BodyDef getBrickBodyDef() {
    return brickBodyDef;
}


public void setBrickBodyDef(BodyDef brickBodyDef) {
    this.brickBodyDef = brickBodyDef;
}


public Fixture getBrickFixture() {
    return brickFixture;
}


public void setBrickFixture(Fixture brickFixture) {
    this.brickFixture = brickFixture;
}
}

我尝试在main类中使用以下行创建数组:

    for (int i =0; i<9; i++) {
        bricks[i] = new CleverBrick(100,100, this);
    } 
for(int i=0;i两个问题:

  • 什么是Physik.java类
  • 为什么用浮点数表示砖块位置?我觉得这些看起来不像浮点数,int在这里感觉很自然
  • 关于NPE-@Atuos是正确的-注意什么是空值。在这里,Physik或getWorld()似乎都是空值。你不应该写吗

    physik.getWorld.createBody()
    

无论哪种方式-如果您可以通过清楚地说明您要问的是什么并提供更多源代码来修改您的问题,那将是很好的-整个类
CleverBrick
Physik

有太多的文本,以至于有点不清楚您要问什么。如果您想修复NullPointerException,请检查那行代码中的object为null。Physik.getWorld()是否返回null?该死的,我很愚蠢。它为null。我在创建世界之前试图创建砖块。