0
我正在使用多邊形進行碰撞檢測。我有一塊石頭,在某個方向上移動。碰撞檢測的多邊形位置不會更新?或碰撞?
當我運行該應用程序時,該多邊形呈現爲一個完美的矩形,在該矩形開始時是岩石。
然而,它並不移動與岩石。
public Polygon box;
private int width;
public int height;
public float [] vertices;
public Rock (float x, float y, int width, int height) {
this.width = width;
this.height = height;
position = new Vector2(x, y);
velocity = new Vector2(20, 0);
vertices = new float[] {position.x, position.y, position.x+width, position.y, position.x+width, position.y+height,
position.x, position.y+height};
box = new Polygon();
box.setOrigin(width/2, height/2);
}
public void RockMove (float delta) {
position.add(velocity.cpy().scl(delta));
box.setVertices(vertices);
box.setPosition(position.x, position.y);
}
精靈一批搖滾
public void render (float delta) {
batch.begin();
batch.enableBlending();
batch.draw(rock, rock.GetX(), rock.GetY(), rock.GetWidth(), rock.GetHeight());
batch.disableBlending();
batch.end();
}
這是從呈現類
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setColor(Color.RED);
shapeRenderer.polygon(Rock.vertices);
shapeRenderer.end();
又有些代碼,多邊形完全顯示出來,但不會移動。我沒有任何錯誤。
編輯:我在岩石移動方法中再次定義了頂點,現在他們隨着岩石移動。
public void RockMove (float delta) {
position.add(velocity.cpy().scl(delta));
box.setVertices(vertices);
box.setPosition(position.x, position.y);
vertices = new float[] {position.x, position.y, position.x+width,
position.y, position.x+width, position.y+height,
position.x, position.y+height};
}
但是由於某些原因,碰撞檢測不起作用。
謝謝,我其實已經親身體會到了這一點。 –
太棒了:) – Aryan