94353


とても長いので一部抜粋ですが、タイトル通り  
Pygameでrect.centerで幅500高さ187の画像を500x500ウィンドウの真ん中に表示したい。  
のですが良い案が浮かばずあまりプログラミング知識も浅いため検索もできず  
困っています。どうしたらよいでしょうか？

[code]

    #ゲームオーバー画面の表示について
       if gameover:
           mixer.music.load('musics/carcrush.wav')
           mixer.music.play()
           
           screen.blit(crash, crash_rect)
    
           
           gvgamen = pygame.image.load("gameovermoto2-3.png")
           gvgamen_rect = gvgamen.get_rect()
           gvgamen_rect.center = ("")
           screen.blit(gvgamen, gvgamen_rect)
           
    
       pygame.display.update()
    
[/code]


CC BY-SA 4.0
2023-03-27T17:01:35.763
94348
2023-03-28T07:28:41.507
47754
question
python pygame
Pygameでrect.centerで幅500高さ187の画像を500x500ウィンドウの真ん中に表示したい。


`gvgamen_rect.center`を`screen.get_rect().center`に合わせることで画像の中央をスクリーンの中央に合わせることができます。

ご質問のコードにある`gvgamen_rect.center = ("")`を、`gvgamen_rect.center =
screen.get_rect().center`に変更してください。

**サンプルコード**

[code]

    import pygame
    import sys
    
    pygame.init()
    screen = pygame.display.set_mode((500, 500))
    gvgamen = pygame.image.load("gameovermoto2-3.png")
    
    while True:
        screen.fill((0,0,0))
        # 画面中央に画像を描画する
        gvgamen_rect = gvgamen.get_rect()
        gvgamen_rect.center = screen.get_rect().center
        screen.blit(gvgamen, gvgamen_rect)
        # 画面中央に画像を描画するワンライナーのコード(上の3行のコードと同等)
        #screen.blit(gvgamen, gvgamen.get_rect(center = screen.get_rect().center))
    
        pygame.display.update()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
    
[/code]


CC BY-SA 4.0
2023-03-28T07:28:41.507
94353
2023-03-28T07:28:41.507
9820
94348
answer