كيف أجعل الحدث يحدث فقط إذا كان التحقق صحيحًا في Python/pygame


لقد قمت بذلك، لذا إذا قمت بالنقر فوق، فستنتقل إلى منتصف الشاشة ولكني أريد فقط أن يحدث ذلك إذا كنت على شاشة الموت، وهو ما يحدث عندما تغادر الشاشة، فكيف يمكنني القيام بذلك بحيث لا تعمل النقرة إلا في حالة الوفاة تظهر الشاشة

ما حاولت:

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

لا يمكنك التحكم عند رفع الأحداث. يمكنك فقط إعداد شرط حيث، عند استدعاء معالج الحدث الخاص بك، يمكنك التحقق من حالة لعبتك (علامة في حالتك) التي تظهر فيها “شاشة الموت”، ثم المتابعة وفقًا لذلك. سيتعين عليك ضبط العلامة (ضبطها على “صحيح”) عند ظهور “شاشة الموت” الخاصة بك، ثم إعادة تعيين هذه العلامة (ضبطها على “خطأ”) عندما يكون ذلك مناسبًا.

コメント

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