私は(posX, posY)
と(mouseX, mouseY)
の間のベクトルを持ち、私はアレグロのイベントライブラリで正の整数としてマウスの位置を取得します。このベクトルからアークタンジェントを使って、私は(deltaX, deltaY)
のラジアンを得ます。そのラジアンをal_draw_rotated_bitmap
ファンクションに差し込みます。私はビットマップがマウスカーソルの位置を指すことを期待していますが、問題はラジアンまたはベクトルがカーソルに垂直に回転させていることです。ここベクトルに垂直なベクトルのラジアン
が関連するコードである:
void setRotation(int dx, int dy)
{
float deltax = posX - mouseX;
float deltay = posY - mouseY;
rotation = atan2(deltay, deltax);
}
void Player::draw()
{
al_draw_rotated_bitmap(player, al_get_bitmap_width(player)/2, al_get_bitmap_height(player)/2, posX, posY, rotation, 0);
}
int main()
{
while(true)
{
player.setRotation(mouseX, mouseY);
player.draw();
al_flip_display();
}
}
どの入力を使用したのか、実際に何が起こったのか、実際に何が起こったのかを明確にすることができます。 –
@JimLewis詳細を追加するために投稿を編集しました。 –