画像 (プレイヤー) をマウスの方向に回転させる方法
2D シューティング ゲームの領域では、プレイヤーのマウスの動きに反応するプレイヤーキャラクター。これは、プレーヤーの画像をマウス カーソルの方向に向けて回転させることで実現できます。このガイドでは、PyGame でこれを実現する方法の詳細を詳しく説明します。
ステップ 1: マウスの位置をキャプチャする
まず、現在の位置を取得する必要があります。 pygame.mouse.get_pos() 関数を使用したマウスの位置。マウスの x 座標と y 座標を含むタプルが返されるので、プレイヤーの望ましい方向を決定できます。
<code class="python">mx, my = pygame.mouse.get_pos()</code>
ステップ 2: ベクトルと角度の計算
次に、基本的なベクトル計算を使用して、プレーヤーの中心からマウス カーソルまでのベクトルを計算します。また、math.atan2 関数を使用してこのベクトルの角度を計算します。この関数は、正の x 軸と指定されたベクトルの間の角度をラジアンで返します。
<code class="python">dx, dy = mx - player_rect.centerx, player_rect.centery - my angle = math.degrees(math.atan2(-dy, dx))</code>
ステップ 3: 補正角度を適用する
プレーヤー スプライトの設計方法によっては、計算された角度に補正角度を適用する必要がある場合があります。これが必要なのは、ほとんどのスプライト イメージが上向きに描画されるのに対し、PyGame の座標系では y 軸が下向きであるためです。補正角度はスプライトの向きによって異なります。
ステップ 4: 画像の回転
補正された角度が計算されたら、pygame.transform.rotate() 関数。この関数は、画像と角度を引数として受け取り、元の画像の回転コピーを返します。
<code class="python">rot_image = pygame.transform.rotate(Player_1, angle) rot_image_rect = rot_image.get_rect(center=player_rect.center)</code>
ステップ 5: 表示を更新する
最後に、更新します。回転した画像を反映するための PyGame 表示。まず、DS.fill() を使用して表示面をクリアします。次に、回転した画像を修正された位置で表示面にブリットします。
<code class="python">DS.fill(White) DS.blit(rot_image, rot_image_rect) pygame.display.flip()</code>
以上が2D キャラクター画像を自動的にマウス カーソルの方向に向けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。