0
私のゲームで私はスプライト1とスプライト2を持っています。 Sprite1は中心を持ちます。私はスプライト1の原点をスプライト2に使用します。しかし、両方のスプライトは適切に整列しません。あなたのスプライトの中心と別のスプライトを持ってLibGDXの別のスプライトの起点の周りにスプライトを回転させるには?
sprite1.setRegion(AssetLoader.rocket);
sprite1.setPosition(rocket.getX(), rocket.getY());
sprite1.setOrigin(rocket.getWidth()/2, rocket.getHeight()/2);
sprite1.setSize(rocket.getWidth(), rocket.getHeight());
sprite1.setRotation(rocket.getRotation());
sprite1.setScale(1, 1);
sprite1.draw(game.batch);
int w = 70;
int h = 20;
float x = escapePod.getX() + escapePod.getWidth()/2 - w/2;
float y = escapePod.getY() + escapePod.getHeight()/2 - h/2 - (escapePod.getHeight() + 4);
sprite2.setRegion(AssetLoader.flame);
sprite2.setPosition(x, y);
sprite2.setOrigin(sprite1.getOriginX(), sprite1.getOriginY());
sprite2.setSize(w, h);
sprite2.setRotation(rocket.getRotation());
sprite2.setScale(1, 1);
sprite2.draw(game.batch);
答えてくれてありがとうございますが、sprite2のsetOriginパラメータにはどうしたらいいですか? – Harry
@ハリー・バンダああ、よく分かるのは、あなたができる最も簡単な方法は、 x = x * cos(角度) - y * sin(角度)、y = x * sin(角度)-y * cos angle)ここで、xとyはスプライトの中心の座標で、angleは回転の角度です。 – eldo