私はマウスで撃つことができるシューティングゲームを作っているので、マウスを指差して銃を持っていますが、左に回すと画像を正しく反転させる方法がわかりません。私はイメージを反転しましたが、それは正しく整列していません。私はそれを説明する方法が本当にわからない、ここに私のコードです。画像を反転して同時に銃をマウスで指差すにはどうすればいいですか? (SFML)
void PortalGun::update(Vector2i mPos) {
float pi = 3.14159265359;
float rotation = atan2(sprite.getGlobalBounds().top - mPos.y,sprite.getGlobalBounds().left - mPos.x) * 180/pi;
int x = player->sprite.getGlobalBounds().left + 16;
int y = player->sprite.getGlobalBounds().top;
if (rotation > -90 && rotation < 90) {
player->dir = -1;
sprite.setTextureRect(IntRect(0, 32, 64, -32));
} else {
player->dir = 1;
sprite.setTextureRect(IntRect(0, 0, 64, 32));
}
sprite.setPosition(x, y + 15);
sprite.setRotation(rotation + 170);
}
マウスが銃の左側にあるとき、イメージを反転させますが、マウスは20ピクセル上になるように上向きに回転し続けます。私は回転時に位置を変更することはできませんので、私は何をしますか?少しわかりにくいのは申し訳ありませんが、説明するのは少し難しいです。
'sf :: Sprite :: getGlobalBounds()'を使用している特定の理由はありますか? – Mario