Comment puis-je faire en sorte qu’un événement ne se produise que si un élément vérifiable est vrai en Python/pygame

la programmation


j’ai fait en sorte que si vous cliquez, vous allez au milieu de l’écran mais je veux que cela se produise uniquement si vous êtes sur l’écran de la mort, ce qui se produit lorsque vous quittez l’écran, comment faire pour que le clic ne fonctionne que si la mort l’écran affiche

Ce que j’ai essayé :

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()

Solution 1

Vous ne pouvez pas contrôler le moment où les événements sont déclenchés. Vous pouvez uniquement configurer une condition dans laquelle, lorsque votre gestionnaire d’événements est appelé, vous vérifiez l’état de votre jeu (un indicateur dans votre cas) que “l’écran de la mort” affiche, puis procédez en conséquence. Vous devrez définir l’indicateur (défini sur true) lorsque votre “écran de mort” s’affiche, puis réinitialiser cet indicateur (défini sur false) le cas échéant.

コメント

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