在我的游戏中,我有sprite1和sprite2。 Sprite1具有中心原点。我希望sprite2使用sprite1的来源。但是两个精灵都无法正确对齐。
这是我的代码:

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);

最佳答案

您有一个精灵的中心和另一个精灵的中心。您可以计算它们之间的距离。一旦有了它和旋转角度,就旋转精灵,然后计算另一个精灵的位置。如果其位置正确,则将另一个精灵旋转角度为负值。

10-05 19:53