簡體   English   中英

Box2D(Java)中的實體數組

[英]Array of Bodies in Box2D (Java)

我是Box2D的新手,幾乎沒有編程經驗,所以請耐心等待。 目前,我正在開發一款Breakout游戲。類似於一個非常簡單的版本: http ://i.computer-bild.de/imgs/4/9/8/6/7/5/1/Google-Breakout -745x419-9c0b3d2ebbdeae82.jpg

這是我大學的一項練習。 至此,我已經創建了球拍,球和牆壁。 現在我要創建積木。 我的問題是我不確定如何組織它們。 我考慮過要在構造器中為帶有2個浮點的磚塊創建一個類,以獲取一個磚塊的實際位置。 然后,我想創建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;
}

}

我嘗試使用以下幾行在主類中以此創建數組:

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

后來我想從xml文件導入磚的不同結構,這只是一個測試用例。

我總是在這行得到一個NullPointerException:brickBody = Physik.getWorld()。createBody(brickBodyDef); 我不知道為什么。 我認為問題在於如何從世界

我希望有人可以幫助我。

幾個問題:

  • Physik.java類是什么?
  • 為什么在浮子位置使用浮子? 這些對我來說似乎不是浮點數,這里的int感覺很自然
  • 關於NPE-@Atuos是正確的-觀察什么是null。 在這里看來Physik或getWorld()都是空值。 你不應該寫

     physik.getWorld.createBody() 

無論哪種方式-如果您可以通過清楚地說明您要問的是什么並提供更多源代碼來修改您的問題,那就更好了-整個類CleverBrickPhysik

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM