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 :

Problème obstacle randint


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2021
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Problème obstacle randint
    Bonjour j'ai essayé de faire apparaitre des obstacle au hasard mais il y'en a que 1 qui apparait.


    Merci d'avance


    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    from tkinter import*
    from random import randint
     
     
    def defile() :
        global x4 , y4 , x1 , x2 , y2 , x
     
        x1 = x1 +1
        can.move('obstacle', 0,10)
        can.move('mob', -5,0)
        y4 = y4+13
     
        collision()
     
     
        fen.after(50, defile)
        if (y3==50) :
           apparition()
     
     
     
     
    def droite(event):
        global x1 , x2 , x3 , y2
     
        print(x2)
        if(x2>1160):
            can.move('perso',0,0)
     
        else :
            can.move('perso',10 , 0)
            x2=x2+10
            collision()
    def gauche(event):
        global x1 , x2 , x3 , y2
     
        print(x2)
        if(x2<130):
            can.move('perso',0,0)
     
        else :
            can.move('perso',-10 , 0)
            x2=x2-10
            collision()
     
    def apparition():
        global x4 , y4
        x4 , y4 = randint(500, 700) , randint(0, 10)
        obs1 = can.create_image(x4,y4, image = obs, anchor='center', tag = ['obstacle'])    #Apparition obstacle au hasard
        obs2 = can.create_image(x4,y4, image = obs, anchor='center', tag = ['obstacle'])
        obs3 = can.create_image(x4,y4, image = obs, anchor='center', tag = ['obstacle'])
     
     
     
    def collision () :
        global x2 , x1 , x2 , y2 , x3 , y3 , x
     
     
        if (y4>690) :
          if (( x2 > x4) and (x2<x4+170)) :
            print('Collision detecter')
            can.move('perso', 0 , 0)
            can.move('obstacle', 0 , 0)
            exit()
          elif ((x2 + 350>x4) and (x2+350< x4 + 170)) :
            print('Collision detecter')
            can.move('perso', 0 , 0)
            can.move('obstacle', 0 , 0)
            exit()
     
    x1 , y1 = 850 , 500
    x2 , y2 = 300 , 700
    x3 , y3 = 1500 ,700
    x4 , y4 = 1500, 1500
     
     
    fen = Tk()
    can = Canvas(fen , width = 1700 , height = 1000, bg = 'white')
    can.pack()
     
     
     
    Fond_jeu = PhotoImage(file = 'fond.png')
    Image_Affichee = can.create_image(x1 , y1 , image= Fond_jeu, anchor='center' , tag = ['route'])
     
    Perso = PhotoImage(file = 'perso.png')
    Image_Affichee = can.create_image(x2 , y2 , image= Perso, anchor='center' , tag = ['perso'])
     
    #Mob = PhotoImage(file = 'mob.png')
    #Image_Affichee = can.create_image(x3 , y3 , image= Mob, anchor='center' , tag = ['mob'])
     
    obs = PhotoImage(file='obstacle.png')
     
    obs1 = can.create_image(x4,y4, image = obs, anchor='center', tag = ['obstacle'])
     
    fen.bind("<Right>" , droite)
    fen.bind("<Left>" , gauche)
    apparition()
    defile()
    collision()
    fen.mainloop()

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 652
    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 652
    Points : 216 686
    Points
    216 686
    Billets dans le blog
    109
    Par défaut
    Bonjour,

    En effet.
    Vous n'appelez que deux fois randint. Une fois pour la position en X et une fois pour la position en Y.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x4 , y4 = randint(500, 700) , randint(0, 10)
    Le résultat (le nombre aléatoire) est stocké/conservé dans la variable x4 (pareil pour le second tirage, avec y4). Ensuite, vous utilisez plusieurs fois ces variables, mais leur valeur ne change pas.

    Autrement dit, c'est comme si vous tirez au sort (avec votre main, dans un sac) un nombre et que vous gardez ce nombre dans votre main (qui s’appellera x4 ). Ensuite, vous montrez/copiez le contenu de votre main, trois fois, aux fonctions can.create_image(). Pensez-vous que votre main changera de contenu magiquement ? Non ? Que faudrait t-il faire pour changer le contenu de votre main ? Un nouveau tirage !
    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.

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

Discussions similaires

  1. [Débutant] Problème avec la fonction randint
    Par JeaDeb dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/09/2015, 08h03
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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