Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pygame event

    22 juillet 2021 à 23:36:48

    Bonjour, je crée un programme où le but est de cliquer sur un bulle quand elle apparait, puis une nouvelle apparait et ainsi de suite mais j'ai 1 questions et 1 problème... Voici mon code : 
    import pygame
    import random, time, os
    from pygame.locals import *
    
    
    
    #éléments importés
    logo = pygame.image.load("assets/logo1.1.png")
    bg = pygame.image.load("assets/galaxie-30067.jpg")
    a1 = pygame.image.load("assets/accueil1_1.png")
    bulle = pygame.image.load("assets/bulle.png")
    bulle_rect = bulle.get_rect()
    
    pygame.init()
    
    clock = pygame.time.Clock()
    font = pygame.font.Font(None , 64)
    blue = pygame.Color("white")
    orig_surf = font.render('Appuyez sur espace pour jouer', True, blue)
    txt_surf = orig_surf.copy()
    alpha_surf = pygame.Surface(txt_surf.get_size(), pygame.SRCALPHA)
    alpha = 0
    fade_in = True
    
    
    
    #générer la fenêtre
    pygame.display.set_caption("Pygo")
    screen = pygame.display.set_mode((1200,800), RESIZABLE)
    
    
    running = True
    
    while running:
    
    
    
        for event in pygame.event.get():
    
            # evenement est fermeture de fenêtre
            if event.type == pygame.QUIT:
                running = False
                pygame.quit()
    
            # début du jeu
            elif event.type == KEYDOWN:
                if event.key == pygame.K_SPACE:
                    print("space")
                    screen.blit(bg, (0, 0))
                    pygame.display.flip()
                    #position du x
                    xbulle = random.randint(1, 1100)
                    print(xbulle)
                    #position du y
                    ybulle = random.randint(1, 700)
                    print(ybulle)
                    #apparition de la bulle
                    screen.blit(bulle, (xbulle, ybulle))
                    pygame.display.flip()
                    for event in pygame.event.get():
                        print ("test1")
                        if event.type == MOUSEBUTTONDOWN:
                            if bulle_rect.collidepoint():
                                print("touché")
    
        #opacité
        if alpha >= 0 and fade_in is True:
            alpha += 5
            if alpha >= 255:
                alpha = 255
                fade_in = False
    
        #opacité
        if alpha <= 255 and fade_in is False:
            alpha -= 5
            if alpha <= 0:
                alpha = 0
                fade_in = True
        #affichage du texte + du fond d'écran d'accueil
        txt_surf = orig_surf.copy()
        alpha_surf.fill((255, 255, 255, alpha))
        txt_surf.blit(alpha_surf, (0, 0), special_flags=pygame.BLEND_RGBA_MULT)
        screen.blit(a1, (0, 0))
        screen.blit(txt_surf, (280, 725))
        pygame.display.flip()

    - Problème : juste après mon apparition de la bulle (ligne 59) ça revient a mon écran d'accueil directement

    - Question : est-ce que mon code (ligne 62) , vérifier si ça clique bien dans la zone, est correct ?

    Merci de votre aide d'avance !!!

    -
    Edité par HugoCam__ 22 juillet 2021 à 23:39:05

    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2021 à 23:40:00

      collidepoint demande un argument.

      Sinon faut pas coder comme ça, faut structurer avec des fonctions, découper les phases du projet : accueil, menu, jeu, etc ...

      Code les différentes parties séparément puis assemble-les.

      -
      Edité par josmiley 22 juillet 2021 à 23:44:12

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        22 juillet 2021 à 23:52:16

        Et dans ce cas çi je dois mettre quoi comme argument ?

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          23 juillet 2021 à 6:23:10

          Je suis d’accord avec @ josmiley, tu demandes des conseils et des exemples que tu raboutes un peu à l’arrache....
          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2021 à 12:47:28

            encore une fois, suis le déroulement de ta boucle et de ton programme: si plus d'évènements, on sort de la boucle de gestion des événements et on fait la suite
            • Partager sur Facebook
            • Partager sur Twitter

            Pygame event

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown