मैं किसी ईवेंट को केवल तभी कैसे घटित कर सकता हूँ जब 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をコピーしました