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

Programmation multimédia/Jeux Python Discussion :

snake pygame game over


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut snake pygame game over
    bonjour j'aimerai savoir comment faire pour que lorsque pikachu touche les bordures de la fenêtre un game over apparait comme le jeu snake
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    import pygame
    from pygame.locals import *
    from random import randint
    SPEED = 3
     
    class Perso(object) :
        "Personnage"
        def __init__(self, screen) :
            self.screen = screen
            self.image = pygame.image.load("pikachu.png").convert_alpha()
            self.pos = self.image.get_rect() #l'image sera mise dans un rectangle pour faciliter son mouvement
            self.screen.blit(self.image, (0,0))
     
        def deplacement(self, direction) :
            "permet de bouger le perso"
            if direction == "droite" :
                self.pos = self.pos.move(SPEED,0)
            elif direction == "gauche" :
                self.pos = self.pos.move(-SPEED,0)
            elif direction == "haut" :
                self.pos = self.pos.move(0,-SPEED)
            elif direction == "bas" :
                self.pos = self.pos.move(0,SPEED)
     
     
    class Pomme(object) :
     
        def __init__(self, screen) :
            self.screen = screen
            self.image = pygame.image.load("cerise.png").convert_alpha()
            self.pos = self.image
            self.screen.blit(self.image, (1,0))
     
     
     
     
    pygame.init()
    pygame.key.set_repeat(1,1)
    pygame.mixer.music.load("heros.wav")
     
    clock = pygame.time.Clock()
    size = width, height = 640,480
    screen = pygame.display.set_mode(size)
    bg = pygame.image.load("background2.jpg").convert()
    dk = Perso(screen)
    pm = Pomme(screen)
    food = 0
    RUNNING = True
     
    continuer = 1 #on initialise la variable continuer
    while continuer :
        for event in pygame.event.get() :
            if event.type == QUIT :
                continuer = False
            if event.type == KEYDOWN :
                if event.key == K_h :
                    # on teste la position suivante pour
                    # voir si il y a collision :
                    next_pos = dk.pos.move(0,SPEED)
                    if dk.pos.top >10 : # pas de while
                        dk.deplacement("haut")
                if event.key == K_b :
                    next_pos = dk.pos.move(0,SPEED)
                    if dk.pos.bottom<height:
                        dk.deplacement("bas")
                if event.key == K_d :
                    next_pos = dk.pos.move(SPEED,0)
                    if dk.pos.right<width :
                        dk.deplacement("droite")
                if event.key == K_g :
                    next_pos = dk.pos.move(SPEED,0)
                    if dk.pos.left>0:
                        dk.deplacement("gauche")
     
     
     
        if food == 0:                                             # si food = 0 ( qu'il n'y a pas de pomme )
            food += 1                                             # on ajoute 1 ( car on va faire apparaitre une pomme )
            x = randint(1,540)                                    # coordonées aléatoires x et y ( -100 psk taille image = 100 px )
            y = randint(1,380)
            pm.pos = (x,y)                                        # la pomme prend les coordonnées de ces valeurs aléatoires
        if dk.pos.center == pm.pos:
            print("caca")
     
     
    # Raffraichit l'affichage :        
        screen.blit(bg, (0,0))
        screen.blit(dk.image, dk.pos)
        screen.blit(pm.image, pm.pos)
        pygame.display.update()  
    pygame.quit()

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    À chaque fois que vous déplacez le serpent (ou avant le déplacement, c'est un peu plus logique ), vous vérifiez que sa position n'est pas sur les bords ou hors de la fenêtre.
    Dans ce cas là, vous stoppez votre boucle principale (par exemple).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut fenêtre game over
    Merci
    mais comment faire pour que une nouvelle fenêtre apprait avec une image que l'on aurait choisis des que le bonhomme touche les bordures

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Charger la nouvelle image et la dessiner en place du jeu. Pas besoin de nouvelle fenêtre ceci dit.
    Par contre, pour vous simplifier le travail, une machine à états pourra aider (sans être obligatoire).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut dessiner place du jeu
    Merci mais comment est ce que je fais pour la dessiner à la place du jeu?

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    En pseudo code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if !game_over:
        affichage_du_jeu()
    else:
        affichage_du_game_over()
    Dans la fonction (faire des fonctions, c'est mieux pour se repérer dans le code) affichage_du_game_over(), il faut afficher l'image du gameover.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 29
    Dernier message: 10/01/2017, 19h06
  2. Game Over
    Par dourouc05 dans le forum Téléchargez
    Réponses: 0
    Dernier message: 12/11/2010, 21h01
  3. zone alarm game over : bloquage
    Par rare1 dans le forum Administration
    Réponses: 9
    Dernier message: 02/08/2006, 17h16

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