Bagaimana cara membuat suatu peristiwa hanya terjadi jika veriable benar dengan Python/pygame

pemrograman


saya telah membuatnya jadi jika Anda mengklik Anda pergi ke tengah layar tetapi saya hanya ingin itu terjadi jika Anda berada di layar kematian yang terjadi ketika Anda meninggalkan layar bagaimana cara membuatnya sehingga klik hanya berfungsi jika mati layar ditampilkan

Apa yang saya coba:

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

Solusi 1

Anda tidak dapat mengontrol kapan peristiwa dimunculkan. Anda hanya dapat mengatur kondisi di mana, ketika event handler Anda dipanggil, Anda memeriksa status permainan Anda (bendera dalam kasus Anda) yang menampilkan “layar kematian”, lalu melanjutkan sesuai dengan itu. Anda harus menyetel tandanya (disetel ke benar) saat “layar kematian” Anda ditampilkan, lalu menyetel ulang tanda itu (disetel ke salah) jika diperlukan.

コメント

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