私はLibgdxとbox2dが初めてです。弧を描く必要がありました。関数を検索したところ、最終的に以下のようになりました
public void drawarc (float centerx, float centery,float radius, float anglefrom, float anglediff, int steps)
{
EdgeShape ps = new EdgeShape();
FixtureDef psfd = new FixtureDef();
psfd.shape = ps;
BodyDef psbd = new BodyDef();
psbd.allowSleep = true;
psbd.awake = true;
psbd.position.set(centerx, centery);
psbd.gravityScale = 0;
Vector2[] vertices = new Vector2[steps];
for (int i = 0; i < steps; i++) {
double angle=Math.toRadians(anglefrom+anglediff/steps*i);
Vector2 sc = new Vector2((float)(radius * Math.cos(angle)),
(float)(radius * Math.sin(angle)));
vertices[i] = sc;
}
Body psd = world.createBody(psbd);
for (int i = 1; i < steps; i++) {
ps.set(vertices[i-1], vertices[i]);
psd.createFixture(psfd);
}
}
正常に動作していますが、正しい方法かどうかはわかりません。それが効率的/正しい方法であるかどうかを確認して教えてください。
ありがとう