PyGameでマウスカーソルの方向に向かって画像を回転させる方法は?

Susan Sarandon
リリース: 2024-10-24 05:46:02
オリジナル
213 人が閲覧しました

How to Rotate an Image Towards the Mouse Cursor Direction in PyGame?

PyGame でマウス カーソルの方向を向くように画像を回転する

はじめに
ゲーム開発では、スプライトやプレイヤーをマウス カーソルの方向に向けるには、多くの場合必要になります。このガイドでは、PyGame を使用して Python でマウスの位置を指すように画像を回転するための包括的なソリューションを提供します。

コード分析

提供されたコードはほぼ正しいですが、プレーヤーとマウス カーソル間のベクトルの角度は計算されません。

解決策

1.ベクトルと角度の計算:

  • マウスの位置の取得: mx, my = pygame.mouse.get_pos().
  • プレーヤーの四角形の計算: player_rect = Player_1.get_rect (topleft=(P_X,P_Y)).
  • プレーヤーからマウスへのベクトルを取得します: dx = mx - player_rect.centerx および dy = player_rect.centery - my.
  • angle = math.degrees(math.atan2(-dy, dx)) -Correction_angle を使用した角度。 -dy は、PyGame の座標系の y 軸の方向を反転します。

2.補正角度の適用:

  • プレーヤーの向きに基づいて、補正角度 (correction_angle) を適用する必要があります。
  • 右向きの画像の場合、correction_angle は 0 です。
  • 上向きの画像の場合、correction_angle は 90 です。
  • 左向きの画像の場合、correction_angle は 180 です。
  • 下向きの画像の場合、correction_angle は 270 です。

3.画像の回転:

  • pygame.transform.rotate(Player_1, angle) を使用して、計算された角度でプレーヤー画像を回転します。
  • rot_image_rect で回転された画像の四角形を取得します。 = rot_image.get_rect(center=player_rect.center) して中心を維持します。

更新されたコード:

<code class="python">import math
import pygame

# Calculate the vector and angle
mx, my = pygame.mouse.get_pos()
player_rect = Player_1.get_rect(topleft=(P_X,P_Y))
dx = mx - player_rect.centerx
dy = player_rect.centery - my
angle = math.degrees(math.atan2(-dy, dx)) - correction_angle

# Rotate the image
rot_image = pygame.transform.rotate(Player_1, angle)
rot_image_rect = rot_image.get_rect(center=player_rect.center)</code>
ログイン後にコピー

この更新されたコードは角度を正しく計算します。プレーヤーを回転させてマウスの位置を指すようにします。

以上がPyGameでマウスカーソルの方向に向かって画像を回転させる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート