【解決方法】Python/pygame で変数が true の場合にのみイベントを発生させるにはどうすればよいですか

プログラミングQA


クリックすると画面の中央に移動するようにしましたが、死亡画面にいる場合にのみそれが発生するようにしたいのですが、画面を離れるときに発生します。死亡した場合にのみクリックが機能するようにするにはどうすればよいですか?画面が表示されています

私が試したこと:

import pygame
import random

SCREEN_WIDTH = 800
SCREEN_HIEGHT = 600

gravity = 4

pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HIEGHT))

bg_image = pygame.image.load('Background.png')
bg_rect = bg_image.get_rect()

losing_image = pygame.image.load('losing screen.png')
losing_rect = losing_image.get_rect()

player_image = pygame.image.load('Character.png')
player_rect = player_image.get_rect()
player_rect.x = 30
player_rect.y = 300

dead = False

clock = pygame.time.Clock()
run = True
score = 0
while run:
     
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            player_rect.y = 300
            player_rect.x= 30
        if event.type == pygame.QUIT:
            run = False
             
    key = pygame.key.get_pressed()
    if key[pygame.K_w]:
        player_rect.y -= 7
    
    if player_rect.y < 790:
        player_rect.y += gravity
    
    
    screen.fill((0,0,0))
    screen.blit(bg_image, bg_rect)
    screen.blit(player_image, player_rect, )
    if player_rect.y >= 580:
        dead = True
        screen.blit(losing_image, losing_rect)
    
        

    pygame.display.flip()    
    pygame.display.update() 
    clock.tick(60) 

pygame.quit()

解決策 1

イベントがいつ発生するかを制御することはできません。 イベント ハンドラーが呼び出されたときに、「死亡画面」が表示されているゲームの状態 (この場合はフラグ) を確認し、それに応じて続行するという条件のみをセットアップできます。 「死亡画面」が表示されているときにフラグを設定 (true に設定) し、必要に応じてそのフラグをリセット (false に設定) する必要があります。

コメント

タイトルとURLをコピーしました