game.batch.begin();
for (Array obstacle_array123: obstacle_array) {
body = obstacle_array123;
for (Body bodies: body) {
if (bodies.getUserData() instanceof Array && bodies.isActive()) {
sprites_array = (Array)bodies.getUserData();
for (int fix_pos = 0; fix_pos < sprites_array.size; fix_pos++) {
sprite = sprites_array.get(fix_pos);
if (verts.size != 0) verts.removeRange(0, verts.size - 1);
f = bodies.getFixtureList().get(fix_pos);
s = (PolygonShape)f.getShape();
transform = bodies.getTransform();
for (int i = 0; i < s.getVertexCount(); i++)
{
s.getVertex(i, tmp);
transform.mul(tmp);
verts.add(new Vector2(tmp));
}
rotation_point.set((verts.get(0).x + verts.get(1).x + verts.get(2).x + verts.get(3).x)/4, (verts.get(0).y + verts.get(1).y + verts.get(2).y + verts.get(3).y)/4);
sprite.setPosition(rotation_point.x - sprite.getWidth()/2, rotation_point.y - sprite.getHeight()/2);
sprite.setRotation(bodies.getAngle() * MathUtils.radiansToDegrees);
sprite.draw(game.batch);
}
}
}
}
game.batch.end();
私の体は複数の正方形の什器で作られていますので、これは各正方形の儀式に各正方形のスプライトを描画するコードです。Vector2はオフです - libgdx/java
2の問題 - 1.st - >それは唯一の配列
2.ndの最初のスプライトレンダリング - あなたは、次のループ(解決しよう)を見れば>を
for (int i = 0; i < s.getVertexCount(); i++)
{
s.getVertex(i, tmp);
transform.mul(tmp);
verts.add(new Vector2(tmp));
}
もそれがあります
for (int i = 0; i < s.getVertexCount(); i++)
{
s.getVertex(i, tmp);
transform.mul(tmp);
verts.add(tmp);
}
に比べて第2の例で生成された座標は、半値幅と正方形の半分の高さのために間違ったapperantly異なっています。
両方の例からコーディネートしてみると、数字は同じですが、スプライトの位置を設定すると、2番目の例がオフになります。
sprites_arrayのサイズは? – IronMonkey
[OK]を押すと、エラーが発生しました。これは、タイプミスのようになりました。for(int z = 0; i <1; i ++)、それは0を投げ続けていた理由です。 –