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 :

[Pygame] Quelques questions à propos des "objets visuels" [Python 3.X]


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut [Pygame] Quelques questions à propos des "objets visuels"
    Salut,

    J'aurais plusieurs questions à propos de Pygame :

    - Peut-on faire apparaitre plusieurs fois l'objet sur le même écran ? Par exemple, faire apparaitre bille1 à droite de l'écran, et ~2s après, faire apparaitre une deuxième fois bille1 à gauche de l'écran par exemple, tout en conservant l'objet bille1 à droite. Et ensuite, j'aimerais pouvoir faire bouger les deux objets indépendamment l'un de l'autre. Est-ce possible en utilisant la même variable ? Ou faut-il copier bille1 et avoir bille2 == bille1 ? Si c'est le cas, n'existe-il pas un moyen de n'utiliser qu'un nombre limité de variables pour faire apparaitre plusieurs fois le même objet ? En l'occurrence, je souhaite réutiliser un objet "note" dans un jeu typé GuitarHero. Notre écran est divisé en 7 colonnes, dans lesquelles les notes tombent. Je souhaite faire apparaitre l'objet note dans la 1ere colonne, puis 2s après, le faire apparaitre dans la 3e colonne par exemple, tout en conservant les mouvements de descentes automatiques de chacune des notes (et ce, jusqu'à la destruction de l'objet au point d'arrivée)

    - Ensuite, peut-on "supprimer" un objet de type Rect ? (ou Surface, si j'ai bien compris, le Rect = une Surface pour Pygame ?) J'ai cru comprendre qu'on ne pouvait que "le déplacer" sans pouvoir l'effacer, mais dans le cas présent, cela signifie que chaque objet ne pourra pas être réutilisé ?

    - Pour un projet de ce type, est-ce vraiment judicieux de conserver des notes de type Rect, ou est-il plus judicieux de passer sur des notes de type Sprite ? S'il faut passer sur du Sprite, quelles fonctions me permettraient de répondre aux questions précédentes ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En réalité, il faut faire une structure (une classe) contenant :
    • la position X et Y de votre élément
    • le sprite à utiliser pour l'afficher

    (dans la suite, je vais l'appeler Object (le nom n'est pas parfait).)

    Au début du programme, vous chargez tous les sprites de votre jeu, dans une banque (un dictionnaire).
    Ensuite, lorsque vous voulez créer un objet, vous faites une nouvelle instance Object que vous remplissez avec la bonne position/le sprite voulu pour afficher l'objet.

    Dans le jeu, vous allez avoir une liste d'objet (dans un tableau).
    Pour les dessiner, vous allez faire une boucle for, parcourant le tableau et dessinant chacun des objets du tableaux en utilisant leur X,Y et le sprite associé
    Pour mettre à jour, certainement une autre boucle.
    Pour supprimer, il suffit juste de virer l'Objet du tableau.
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse
    Je suis actuellement en train de créer ma classe, mais je suis un peu perdu...Je n'ai en effet pas encore bien compris les notions de classes et de dictionnaires (nous n'en avons pas vraiment entendu parler en ISN, et malgré quelques recherches, je suis toujours un peu perdu)

    J'ai pour l'instant créé ma classe Note avec une fonction SpawnNote:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Note(pygame.sprite.Sprite):
        """Création de la classe "Note" """
        def __init__(self, note_x, note_y):
            pygame.sprite.Sprite.__init__(self)
            self.image = pygame.image.load('note.jpg').convert()
            self.x = note_x
            self.y = note_y
     
    def SpawnNote(note_x, note_y):
        return Note(note_x, note_y)

    Je dois ensuite créer une Liste contenant les coordonnées note_x et note_y ainsi que le temps note_timespawn de chaque note, et ainsi pouvoir les réutiliser avec la fonction SpawnNote, c'est bien ça ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    À priori, il vous suffit d'avoir une liste de Note.
    Avez vous un peu zieuter les tutoriels alentours : http://python.developpez.com/cours/

    Sinon, voici une classe ultra basique (pas très Python dans l'âme à vrai dire) que j'avais fait : https://github.com/Paris-Coders/jeux...hmup/entity.py
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    J'utiliserai donc une liste Liste_note, que je vais remplir avec une boucle (dans l'ordre : je crée la classe, je crée une boucle qui va donner les différents paramètres que les Notes doivent prendre (x, y, temps d'apparition), puis je les mets dans la Liste), c'est bien ça ?

    J'ai regardé rapidement les tutoriels sur les Classes, c'est justement ça qui m'a aidé à comprendre un peu plus les Classes (notamment ce qu'il y avait entre parenthèses après la classe)

    Si j'utilise ce modèle, les Notes n'hériteront donc pas de la classe pygame.sprite, non ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Je verrai plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    notes = [] # Création de la liste
    for i in seq(10): # Création de dix éléments
        notes.append(Note(sprite, x, y))
    Voilà.
    Par contre, je modifierai votre constructeur, pour ne plus faire de init() de sprite, ni rien, juste une copie de la variable passée au constructeur.
    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Si j'utilise cette méthode, je ne pourrai donc pas utiliser le temps (sachant que les notes doivent apparaitre dans un ordre donné à un temps donné) pour définir les notes ?

    J'ai essayé, mais je suis toujours aussi perdu...
    Voila ce que j'ai écrit pour le moment

    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
    class Note:
        """Création de la classe "Note" """
        def __init__(self, image, note_x, note_y):
            self.image = pygame.image.load('note.jpg').convert()
            self.x = note_x
            self.y = note_y
     
    def SpawnNote(note_x, note_y):
        return Note(note_x, note_y)
     
    for i in range(10): # Création de dix éléments
        Liste_note.append(Note(pygame.image.load('note.jpg').convert(), 100, 100))
     
    for i in Liste_note:
        fenetre.blit(i.image) [Cette partie est à compléter, j'ai juste écrit une ligne pour "tester", sans succès]

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    C'est pas mal.

    Pour la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def __init__(self, image, note_x, note_y):
            self.image = image
            self.x = note_x
            self.y = note_y
    Ensuite, pour le temps, je ne sais pas exactement ce que vous voulez faire. Pouvez-vous expliquer tout ce qui est en rapport avec ce temps.
    Le blit sans coordonnées, je n'ai pas souvenir qu'il fonctionne.
    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.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Je corrige pour la classe

    Pour le temps : en fait, je souhaitais lancer un compteur (avec les outils de pygame.time) au moment ou la musique se lance, puis, par exemple, faire apparaitre une note à la 2e colonne à 1500 ms, puis une autre note à la 4e colonne à 2000ms. Ainsi, je souhaitais définir une note avec les coordonnées x et y (donc, la colonne ou les notes apparaissent, et mettre y = 0, vu que chaque note va apparaitre en haut de notre écran), et avec un paramètre de temps Tps_Spawn, et ainsi, lorsque Tps_Spawn = temps indiqué par l'outil de pygame.time, la note apparait
    Etant donné que les intervalles de temps entre chaque note ne sont pas constants, je voulais justement utiliser un autre paramètre que j'inscrirai "en brut" dans les paramètres de la note, au lieu d'utiliser une boucle qui, tous les X ms, va faire apparaitre une note

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Oui clairement, dans ce cas là, il faut que le temps auquel la note spawne, soit inscrit dans la classe (la classe Note).
    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.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    D'accord, j'ai rajouté l'élément Tps_Spawn pour la classe Note

    Normalement, ma classe fonctionne, cependant, je n'arrive pas à faire apparaitre la Note sur l'écran, même en utilisant le .blit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Note:
        """Création de la classe "Note" """
        def __init__(self, image, note_x, note_y, Tps_spawn):
            self.image = pygame.image.load('note.jpg').convert()
            self.note_x = note_x
            self.note_y = note_y
            self.Tps_spawn = Tps_spawn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            for i in Liste_note:
                if i.Tps_spawn == Timer:
                    fenetre.blit(i.image, (i.note_x, i.note_y) )

    J'ai déjà vérifié l'égalité Tps_spawn ==Timer, le programme reconnait bien l'égalité lorsqu'elle arrive

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    pour le blit, il faut donner la largeur et hauteur, ce qui fait un truc plus du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.blit(i.image, (i.note_x, i.note_y, i.image.get_width(), i.image.get_height()) )
    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.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Même en ajoutant i.image.get_width() et i.image.get_height(), la Note n'apparait toujours pas...

    J'ai essayé de rentrer en brut la largeur/hauteur de la Note, sans succès
    J'ai également essayer de mettre le blit hors de la boucle d'évènements, sans succès également

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Utilisez les "print" pour déboguer le code. Deux choses à vérifier :
    - les valeurs X et Y utilisés lors de l'affichage de la note
    - vérifier si la condition est vérifiée et donc que la note s'affiche

    J'ai une petite idée de la raison que cela ne marche pas
    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.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Les "prints" pour chacune des coordonnées fonctionne bien, et de même pour chacune des conditions

    Finalement, j'ai pu trouver le problème : dans mon code, le fenetre.blit du fond d'écran devait apparaitre en 1er dans la boucle d'évènements, et non pas à la fin
    (ce qui me semble relativement bizarre de toute manière, la boucle d'évènements est censée se répéter à l'infini, et donc, que l'on écrive fenetre.blit à la fin ou au début ne devrait rien changer vu que le fenetre.blit est bien initialisé dans les deux cas...Peut-être que le collage fait que la fond se retrouve au dessus de la Note...enfin bref)


    Pour faire "disparaitre" un objet Note, je peux le supprimer de la liste, ou est-il plus judicieux de simplement le déplacer hors de l'écran ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Pour le problème du blit, je ne peux pas aider sans le code. J'imagine une erreur avec le fill() pour nettoyer l'écran, ou le flip().

    Pour la note, oui, vous pouvez simplement l'enlever de la liste.
    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.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Le problème du blit est réglé, je n'avais juste pas compris mon erreur, mais ce n'est pas très grave ^^

    J'ai désormais un problème assez bizarre :
    Supposons ceci : Nom : 1429298944-sc.png
Affichages : 1580
Taille : 45,6 Ko
    Note : de gauche à droite, les touches pour "activer" la note sont : S, D, F, Espace, J, K, L
    Par "activer", j'entends : lorsque j'appuie sur la touche, le programme est censé identifier la position de la note, attribuer le score correspondant à l'utilisateur, et supprimer la Note

    Lorsque j'appuie sur la touche F, la Note sur la 3e colonne s'active bien. Cependant, lorsque j'appuie sur K (la touche de l'avant-dernière colonne), la Note sur la 3e colonne s'active, alors qu'elle est normalement censée activer seulement l'avant dernière colonne. Mais lorsque j'appuie sur L (la touche de la dernière colonne), la Note sur la 3e colonne ne s'active pas. Je suppose donc que le problème ne se passe seulement lorsqu'il y a une Note sur la colonne en question (ici, il y a des Notes dans l'avant-dernière colonne, et K active la 3e colonne, cependant, il n'y en a pas dans la dernière colonne, et L n'active pas la 3e colonne)


    Je suppose un problème dans ma fonction :
    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
    def Check_Colonne(pts):
        """Permet de vérifier la colonne dans laquelle on est"""
        if event.type == KEYDOWN:
            if event.key == K_s and i.note_x == 2: #Si on appuit sur S et si c'est sur la 1ere colonne
                Scoring(pts)
            if event.key == K_d and i.note_x == 59:
                Scoring(pts)
            if event.key == K_f and i.note_x == 116:
                Scoring(pts)
            if event.key == K_SPACE and i.note_x == 173:
                Scoring(pts)
            if event.key == K_j and i.note_x == 230:
                Scoring(pts)
            if event.key == K_k and i.note_x == 287:
                Scoring(pts)
            if event.key == K_l and i.note_x == 344:
                Scoring(pts)
    Et voici également la fonction Scoring, qui, normalement, fonctionne correctement

    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
    def Scoring(pts):
        """Permet de faire les actions suite à l'appui sur la touche"""
        print("+", pts) #Test (à retirer)
        global Tps_Score #On transforme la variable locale en variable globale
        Tps_Score = Timer + 500 #On change pour que le score s'affiche pdt 500ms
        if pts == 300:
            global Check_Note
            Check_Note = 4 #On change l'état de la dernière Note
            global Nb_300
            Nb_300 += 1 #Incrémentation pour la fin
        if pts == 100:
            global Check_Note
            Check_Note = 3 #On change l'état de la dernière Note
            global Nb_100
            Nb_100 += 1 #Incrémentation pour la fin
        if pts == 50:
            global Check_Note
            Check_Note = 2 #On change l'état de la dernière Note
            global Nb_50
            Nb_50 += 1 #Incrémentation pour la fin
        if pts == 0:
            global Check_Note
            Check_Note = 1 #On change l'état de la dernière Note
            global Nb_miss
            Nb_miss += 1 #Incrémentation pour la fin
        del Liste_note[0] #Suppression de la Note que l'on vient de faire

    De même, le code dans la boucle d'évènement pour vérifier l'ordonnée de la Note fonctionne correctement normalement, je le mets quand même au cas ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            for i in Liste_note:
    [...]
                    if i.note_y > (696-15) and i.note_y < (696+15) and event.type == KEYDOWN: #Si la note est éloignée de la barre
                        if i.note_y > (696-10) and i.note_y < (696+10) and event.type == KEYDOWN: #Si la note se rapproche de la barre
                            if i.note_y > (696-5) and i.note_y < (696+5) and event.type == KEYDOWN:#Si la note est +- sur la barre
                                Check_Colonne(300)
                            else:
                                Check_Colonne(100)
                        else:
                            Check_Colonne(50)
                    else: #Si la note est beaucoup trop éloignée de la barre (= si l'user rate la note)
                        Check_Colonne(0)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Dans Check_Colonne(), le 'i' (la variable i) représente quoi ? Vous ne testez que pour une seule et unique note ?
    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.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Le i représente la Note qui a été passée dans le While de la boucle d'évènements

    Normalement, oui, c'est censé tester que pour une seule Note : celle qui est le plus bas dans l'écran (ou plutôt : celle qui a l'indice [0] dans la Liste). Cependant, si, par exemple, la Note se trouve à la 3e colonne mais qu'on appuie sur L, il devrait normalement rien se passer

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Pour moi, la fonction Check_Colonne n'a pas accès à i, car il n'est passé en paramètre.
    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.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/06/2015, 11h17
  2. Quelques question à propos des technologies RAID
    Par DranDane dans le forum Composants
    Réponses: 6
    Dernier message: 12/08/2008, 12h40
  3. Question à propos des niveaux de transaction
    Par davy.g dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2005, 15h31
  4. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

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