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 :

Jeu "Tron" problème


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Par défaut Jeu "Tron" problème
    Bonsoir, je fais actuellement un jeu "Tron" (une sorte de snake mais avec plusieurs joueurs et au lieu des serpents ce sont des motos.) et je suis bloqué car je n'arrive pas à faire en sorte que la moto continue d'avancer toute seule (si le joueur appuie sur la touche bas, il continue à descendre même si il appuie plus) je sais pas comment faire la boucle en gros. Merci de m'aider .

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Par défaut
    Bonjour,

    Il faudrait que tu nous laisse voir ton code pour qu'on puisse t'aider efficacement.

    Avec le peu d'info que tu nous donne j'aurai tendance à utiliser des variables (genre up, down, right, left) et quand tu appui sur une touche tu mets à 1 la variable qui correspond à la touche et tu mets les autres à 0. Après, pour chaque frame tu vérifie ces variables et si l'une est à 1 tu déplace la moto dans la bonne direction...

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Par défaut
    C'est vrai que c'est pas très précis comme ça :p.

    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
    from tkinter import*
    import time
     
    DEBUG=True
    def debug(s):
        if DEBUG : print(s)
     
    def JJA_Play_Mouv(event):
        touche=event.keysym
        global x,y,w,z,m1,m2,m3,m4
        if(touche=="z"):
            if(w!=0):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x
                w=w-10
                y=y
                z=z-10
                Can.coords(moto1,x,w,y,z)
        if(touche=="s"):
            if(z!=hauteur):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x
                w=w+10
                y=y
                z=z+10
                Can.coords(moto1,x,w,y,z)
        if(touche=="q"):
            if(x!=0):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x-10
                w=w
                y=y-10
                z=z
                Can.coords(moto1,x,w,y,z)
        if(touche=="d"):
            if(y!=largeur):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x+10
                w=w
                y=y+10
                z=z
                Can.coords(moto1,x,w,y,z)
        if(touche=="o"):
            if(m4!=0):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1
                m2=m2-10
                m3=m3
                m4=m4-10
                Can.coords(moto2,m1,m2,m3,m4)
        if(touche=="l"):
            if(m2!=hauteur):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1
                m2=m2+10
                m3=m3
                m4=m4+10
                Can.coords(moto2,m1,m2,m3,m4)
        if(touche=="k"):
            if(m1!=0):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1-10
                m2=m2
                m3=m3-10
                m4=m4
                Can.coords(moto2,m1,m2,m3,m4)    
        if(touche=="m"):
            if(m3!=largeur):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1+10
                m2=m2
                m3=m3+10
                m4=m4
                Can.coords(moto2,m1,m2,m3,m4)
     
     
    fen=Tk()
    fen.title("ReTroN")
    largeur=1200
    hauteur=650
    w=10
    x=10
    y=20
    z=20
    m1=largeur-20
    m2=hauteur-20
    m3=largeur-10
    m4=hauteur-30
    Can= Canvas(fen,width=largeur, height=hauteur, bg="white")
    moto1=Can.create_rectangle(w,x,y,z,outline="blue", fill="sky blue")
    moto2=Can.create_rectangle(m1,m2,m3,m4, outline="red", fill="orange")
    Can.focus_set()
    Can.bind('<Key>',JJA_Play_Mouv)
    Can.pack(padx =5, pady =5)
     
    Bou1=Button(fen, text='Rage Quit', command=fen.destroy)
    Bou1.pack(side=LEFT,padx=5,pady=5)
     
    fen.mainloop()
    Voilà .

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 308
    Par défaut
    Salut,

    Afin de rendre le code lisible, il est indispensable de le placer entre des balises "code".


  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Par défaut
    Par contre, tout les while sont des if.
    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
     
    from tkinter import*
    import time
     
    DEBUG=True
    def debug(s):
        if DEBUG : print(s)
     
    def JJA_Play_Mouv(event):
        touche=event.keysym
        global x,y,w,z,m1,m2,m3,m4
        if(touche=="z"):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x
                w=w-10
                y=y
                z=z-10
                Can.coords(moto1,x,w,y,z)
        if(touche=="s"):
            if(z!=hauteur):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x
                w=w+10
                y=y
                z=z+10
                Can.coords(moto1,x,w,y,z)
        if(touche=="q"):
            if(x!=0):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x-10
                w=w
                y=y-10
                z=z
                Can.coords(moto1,x,w,y,z)
        if(touche=="d"):
            if(y!=largeur):
                a=Can.create_rectangle(x,w,y,z,outline='light blue', fill="light blue")
                x=x+10
                w=w
                y=y+10
                z=z
                Can.coords(moto1,x,w,y,z)
        if(touche=="o"):
            if(m4!=0):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1
                m2=m2-10
                m3=m3
                m4=m4-10
                Can.coords(moto2,m1,m2,m3,m4)
        if(touche=="l"):
            if(m2!=hauteur):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1
                m2=m2+10
                m3=m3
                m4=m4+10
                Can.coords(moto2,m1,m2,m3,m4)
        if(touche=="k"):
            if(m1!=0):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1-10
                m2=m2
                m3=m3-10
                m4=m4
                Can.coords(moto2,m1,m2,m3,m4)    
        if(touche=="m"):
            if(m3!=largeur):
                b=Can.create_rectangle(m1,m2,m3,m4,outline='light salmon', fill="light salmon")
                m1=m1+10
                m2=m2
                m3=m3+10
                m4=m4
                Can.coords(moto2,m1,m2,m3,m4)
     
     
    fen=Tk()
    fen.title("ReTroN")
    largeur=1200
    hauteur=650
    w=10
    x=10
    y=20
    z=20
    m1=largeur-20
    m2=hauteur-20
    m3=largeur-10
    m4=hauteur-30
    Can= Canvas(fen,width=largeur, height=hauteur, bg="white")
    moto1=Can.create_rectangle(w,x,y,z,outline="blue", fill="sky blue")
    moto2=Can.create_rectangle(m1,m2,m3,m4, outline="red", fill="orange")
    Can.focus_set()
    Can.bind('<Key>',JJA_Play_Mouv)
    Can.pack(padx =5, pady =5)
     
    Bou1=Button(fen, text='Rage Quit', command=fen.destroy)
    Bou1.pack(side=LEFT,padx=5,pady=5)
     
    fen.mainloop()

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 308
    Par défaut
    Tu as oublié une vérification:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        if touche == "z":
            if z > 10:
    pas besoin de parenthèses aux if.

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

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