私は画面上で矩形を移動したいと思っています。垂直に言うと、動的に変更してrectの位置を表す数値をアタッチしています。ヘルプは私のプロジェクト全体に感謝しています。長方形の位置に関連する数値をPygameに表示する方法は?
答えて
テキスト・表面たびRECT変化の位置を再描画(例えばMOUSEMOTION
イベントが発生した場合)、その後、現在の矩形の位置でそれをブリットする必要があります。
import sys
import pygame as pg
def main():
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
font = pg.font.Font(None, 32)
font_color = (100, 200, 150)
rect = pg.Rect(20, 200, 80, 50)
txt_surf = font.render(str(rect.topleft), True, font_color)
selected = None
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.MOUSEBUTTONDOWN:
if selected:
selected = None
elif rect.collidepoint(event.pos):
selected = rect
elif event.type == pg.MOUSEMOTION:
if selected:
selected.center = event.pos
txt_surf = font.render(str(rect.topleft), True, font_color)
screen.fill((30, 30, 30))
pg.draw.rect(screen, font_color, rect, 2)
screen.blit(txt_surf, (rect.right+10, rect.top))
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
pg.init()
main()
pg.quit()
sys.exit()
いつものように完璧な答えは、まだそれを実装しようとしている、ありがとう! – Bartnick81
以下は、マウスの左ボタンが押されている間のマウスカーソルの位置を示すコード例です。この場合、「動的に変化する番号」はマウスのカーソル位置です。
あなたがコードで見たように、私は等幅フォント(Windowsの場合宅配便新)ので、数の任意の先頭のスペースを使用しnumbers--のサイズは変更されませんスペースで数12
は、同じ量のを取り番号199
と同様に画面の不動産になります。 timer.tick(60)
ステートメントでメインループを1回ずつ約60回実行すると、文字列が希望の数値から作成され、text
というサーフェスが文字列から構築され、サーフェスが画面にブリットされます。
状況にこれを適用する方法は明確ですか?
"""A pygame "game" that shows the position of the mouse cursor while
the left mouse button is pressed."""
import pygame
pygame.init()
screen = pygame.display.set_mode([800,600])
pygame.display.set_caption("Show the Position of the Mouse while Dragging")
BLACK= (0, 0, 0)
RED = (255, 0, 0)
timer = pygame.time.Clock()
font = pygame.font.SysFont("Courier New", 24)
mouse_is_down = False
keep_going = True
while keep_going:
# Handle events.
for event in pygame.event.get():
if event.type == pygame.QUIT:
keep_going = False
if event.type == pygame.MOUSEBUTTONDOWN:
if pygame.mouse.get_pressed()[0]: # Left mouse button
mouse_is_down = True
if event.type == pygame.MOUSEBUTTONUP:
if not pygame.mouse.get_pressed()[0]: # Left mouse button
mouse_is_down = False
# Draw the screen.
screen.fill(BLACK)
if mouse_is_down:
position = pygame.mouse.get_pos()
position_string = 'Mouse position: ({:3d}, {:3d})'.format(*position)
else:
position_string = ''
text = font.render(position_string, True, RED)
text_rect = text.get_rect()
text_rect.right = screen.get_rect().right - 10
text_rect.y = 10
screen.blit(text, text_rect)
pygame.display.update()
timer.tick(60)
pygame.quit()
もう一つの答えは私の問題にもっと適していますが、とにかくおかげさまです! – Bartnick81
- 1. ブートストラップスライダでマウスの位置にツールヒント値を表示する方法
- 2. pygameウィンドウに値を表示する方法は?
- 3. Pygameで非長方形のオブジェクトを移動するには?
- 4. ビューバーの位置をアクションバーに表示する方法は?
- 5. osmdroidに現在の位置ポインタを表示する方法は?
- 6. テキストを所定の位置に表示する方法は?
- 7. MPAndroidChart - 関連するX軸の位置にデータを正しく表示する方法
- 8. pygameの長方形のサイズを制御する方法はありますか?
- 9. 位置を変えずに複数のTextViewを表示する方法は?
- 10. Cのリッチテキストボックスにカーソルの位置を表示する方法
- 11. 形状の位置にユーザーフォームを配置する方法
- 12. jsonオブジェクトの全長を.replace()関数で表示する方法
- 13. 関連アイテムをデータテーブルに表示する方法は?
- 14. 絶対位置にコンテンツを表示する方法
- 15. アンドロイド - プログラムで線形レイアウトの表示位置を固定する方法
- 16. 2つの変数の線形関係をグラフに表示する方法は?
- 17. フォームに関連するカーソルの位置
- 18. pygameをクリックして画像をランダムな位置に移動する方法は?
- 19. コールスタック内の関数の位置を取得する方法は?
- 20. odoo 10の複数の列に関連するフィールド値を表示する方法は?
- 21. ジオコーダを使用して位置を表示する方法は?
- 22. ローカルDOMの子をマウスの位置に関連して表示する
- 23. JavaFXでノードの位置を他のノードに関連付ける方法は?
- 24. DIVの位置に関連するマウス座標の計算方法
- 25. Rails - IDに関連した名前を表示する方法
- 26. 正方形divの位置を取得する方法jQuery/JavaScript
- 27. Matlab - 長方形関数を使用しないプロット長方形
- 28. 関連するレコードの名前を表示する方法3.1.0
- 29. 正確な右クリックイベントの位置を表示する方法
- 30. スライダに似た、UIButtonでユーザの位置を表示する方法は?
もちろん可能ですが、詳細を追加してください。ちょうど "rectの位置を表す"何番なのでしょうか?たとえばその頂点のy座標ですか?どのくらいの頻度で矩形を移動させるのですか?非常に速いので、視聴者は急激に変化する数字を読み取ることができません。フォントには何らかの制限がありますか?固定幅フォントでは、特にテキストが変更された場合など、急激に変化する数値を処理する方が効果的です。最後に、他に何を研究し、何を試しましたか?まったくどこにいるのですか?パイゲーム画面にテキストを表示する方法は分かりますか? –
私はテキストを表示する方法を知っています。私は四角形の頂点にアタッチしていますが、フォントはテキストオブジェクトなので、値を動的に変更することはできません。私はマウスでrectをドラッグするたびにpygame.mousemotionのrect.yの位置を表示する必要があります。私は何とか返されたyの値を文字列に変換しなければならないと思いますか? – Bartnick81