IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[pygame] Détecter un clic de souris sur une zone précise d'une image et lancer un .exe [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut [pygame] Détecter un clic de souris sur une zone précise d'une image et lancer un .exe
    Bonjour,

    Je cherche à faire un menu simple pour un jeu et donc pour lancer un .exe (le jeu) le joueur doit cliquer sur "Start" (image ci-joint) et pour quitter "Exit" mais je n'arrive pas à trouver comment faire.

    Merci d'avance pour votre aide.

    Voici le début du programme avec l'image du Menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import pygame
    from pygame.locals import *
     
    pygame.init()
     
    fenetre = pygame.display.set_mode((762, 477), RESIZABLE)
    fond = pygame.image.load("Menu_RunOut.png").convert_alpha()
    fenetre.blit(fond, (0,0))
     
    pygame.display.flip()

    Nom : Menu_RunOut.png
Affichages : 4456
Taille : 359,0 Ko

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Ce que tu cherches à faire est le b.a.ba de pygame.

    Le rectangle délimitant la surface s'obtient avec Surface.get_rect, fond_rect = fond.get_rect() dans ton code.
    Et ça tombe bien, la class Rect fournit une méthode collidepoint pour déterminer si un point x, y se situe dans un Rect donné.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut
    Salut bistouille,

    Merci pour ton aide, j'ai réussi grâce à tes conseils.
    Mais maintenant un autre problème ce pose, le rectangle qui définit la zone est noir mais je voudrais qu'il soit invisible pour laisser apparaître le bouton "START" , sait tu comment faire ?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import pygame
    import os
    from pygame.locals import *
     
    pygame.init()
     
    fenetre = pygame.display.set_mode((762, 477), RESIZABLE)
    fond = pygame.image.load("Menu_RunOut.png").convert_alpha()
    fenetre.blit(fond, (0,0))
     
     
    stop = False
     
    clickable_area = pygame.Rect((220, 377), (149, 66))
    rect_surf = pygame.Surface(clickable_area.size)
     
    while not stop:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                stop = True
     
            elif event.type == MOUSEBUTTONUP: # quand je relache le bouton
                if event.button == 1: # 1= clique gauche
                    if clickable_area.collidepoint(event.pos):
                        os.startfile('RunOutv2.exe')
                        stop = True
     
        fenetre.blit(rect_surf, clickable_area)
        pygame.display.flip()
     
    pygame.quit()

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut
    C bon j'ai trouvé il faillait juste rajouter pour le rendre invisible

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Clic de souris sur une image]
    Par onigiri03 dans le forum GTK+
    Réponses: 3
    Dernier message: 12/04/2013, 13h05
  2. [Débutant] Récupération clic de souris sur une image dans un GUI
    Par Ma29200 dans le forum Interfaces Graphiques
    Réponses: 43
    Dernier message: 27/04/2012, 15h11
  3. Détecter clic de souris sur une autre application
    Par xenos dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 05/08/2010, 09h18
  4. Réponses: 4
    Dernier message: 08/09/2006, 04h36
  5. coordonnées d'un clic souris sur une image
    Par marcuswgs84 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo