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 :

Besoin d'un Coup de main : Pygame [Python 3.X]


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Besoin d'un Coup de main : Pygame
    Bonjour.

    Je viens de commencer à toucher à Pygame et je dois avouer que les divers tips que j'ai trouvé sur internet jusqu'a présent était soit pas assez clairs, soit trop complexes pour mon niveau, j'aurrai donc besoin d'un petit coup de pouce.
    Je développe un petit jeu ou il faut proteger une ville de tirs à l'aide d'un drone. Je cherche à faire en sorte que :
    -Le drone puisse bouger de gauche à droite
    -Les tirs partent de sous le vaisseau et de façon aléatoire
    -Si les tirs rencontrent le drone, ils disparaissent
    -Si les tirs touchent la ville, c'est Game Over

    Voici mon programme jusqu'a présent :

    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
    import pygame
    from pygame.locals import *
    import random
    continuer=1
    pygame.init()
     
    fenetre=pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour dirriger le drone.")
     
    ville=pygame.image.load("ville.jpg").convert()
    laser=pygame.image.load("laser.jpg").convert()
    drone=pygame.image.load("drone.jpg").convert()
    fenetre.blit(ville,(0,0))
    pygame.display.flip()
     
     
    while continuer:
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,(275,650))
        for event in pygame.event.get():
            if event.type==QUIT:
                continuer=0
     
        pygame.display.update()
     
    pygame.quit()
    Et les images que je souhaite utiliser :
    http://image.noelshack.com/fichiers/...4319-drone.jpg
    http://image.noelshack.com/fichiers/...4321-laser.jpg
    http://image.noelshack.com/fichiers/...4323-ville.jpg

    Je ne demande pas que l'on me fasse le programme à ma place, juste que l'on m'explique ce que je dois faire, quel fonction utiliser etc...

    Merci d'avence

  2. #2
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    il sera plus pratique d'utiliser un rect pour ton perso
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    perso =pygame.image.load("drone.jpg").convert_alpha()
    position_perso = perso.get_rect()
    position_perso = position_perso.move(275,650)
    ensuite,pour la gestion de touche,le mieux est de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    key=pygame.key.get_pressed()
    if key[K_RIGHT]:
        position_perso = position_perso.move(3,0)
    if key[K_LEFT]:
        position_perso = position_perso.move(-3,0)
    ça permet de faire plusieurs touches simultanées

  3. #3
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Etrangement, le drone reste immoblie lorsque j'appuis sue les fleches. Ensuite, peut etre que j'ai mal placé les foction.

    Voila ce que j'obtiens :
    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
    import pygame
    from pygame.locals import *
    import random
    continuer=1
    pygame.init()
     
    fenetre=pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour dirriger le drone.")
     
    ville=pygame.image.load("ville.jpg").convert()
    laser=pygame.image.load("laser.jpg").convert()
    drone=pygame.image.load("drone.jpg").convert()
    position_drone=drone.get_rect()
    position_drone=position_drone.move(275,650)
    fenetre.blit(ville,(0,0))
    pygame.display.flip()
     
    key=pygame.key.get_pressed()
    if key[K_RIGHT]:
        position_drone=position_drone.move(3,0)
    if key[K_LEFT]:
        position_drone= position_drone.move(-3,0)
     
    while continuer:
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,(275,650))
        for event in pygame.event.get():
            if event.type==QUIT:
                continuer=0
     
        pygame.display.update()
     
    pygame.quit()
    Ai-je mal placé quelque chose ?

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par Shingleton Voir le message
    Ai-je mal placé quelque chose ?
    si tu poses la question c'est que tu as déjà une petite idée de la réponse

    • où se situe la boucle principale ?
    • à quel moment le clavier est "scanné" pour voir quelle flèche est enfoncée ?

  5. #5
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Pour ce qui est de la boucle principale, ça dois donner ça, si je n'me trompe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    while continuer:
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,(275,650))
        for event in pygame.event.get():
            key=pygame.key.get_pressed()
            if key[K_RIGHT]:
                position_drone=position_drone.move(3,0)
            if key[K_LEFT]:
                position_drone= position_drone.move(-3,0)
            if event.type==QUIT:
                continuer=0
    ....
    Mais je ne vois pas ce que tu veux dire par "Scaner" le clavier.
    C'est une fonction spécifique ?

  6. #6
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    non j'entends par "scanner le clavier" le fait d'appeler pygame.key.get_pressed() si tu préfères

    si tu effectues des changements dans ton code par rapport à celui que tu as posté à l'origine n'hésites pas à les remettre ici

  7. #7
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Pour le moment j'ai juste ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    key=pygame.key.get_pressed()
    if key[K_RIGHT]:
        position_drone=position_drone.move(3,0)
    if key[K_LEFT]:
        position_drone= position_drone.move(-3,0)
    dans le " while continuer: ", mais le drone reste immobile.

  8. #8
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    si on s'en tient à ce que tu dis, en faisant les modifications uniquement dans la boucle while par rapport au premier code posté on obtient une erreur comme quoi position_drone n'est pas défini

    mets l'intégralité de ton code !

  9. #9
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    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
    import pygame
    import winsound
    from pygame.locals import *
    import random
    continuer=1
    pygame.init()
     
    fenetre=pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour dirriger le drone.")
     
    ville=pygame.image.load("ville.jpg").convert()
    laser=pygame.image.load("laser.jpg").convert()
    drone=pygame.image.load("drone.jpg").convert()
    position_drone=drone.get_rect()
    position_drone=position_drone.move(275,650)
    fenetre.blit(ville,(0,0))
    pygame.display.flip()
     
    while continuer:
        key=pygame.key.get_pressed()
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,(275,650))
        for event in pygame.event.get():
            if key[K_RIGHT]:
                position_drone=position_drone.move(3,0)
            if key[K_LEFT]:
                position_drone= position_drone.move(-3,0)
            if event.type==QUIT:
                continuer=0
     
        pygame.display.update()
     
    pygame.quit()

  10. #10
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    je te propose de changer la ligne 22 pour fenetre.blit(drone, position_drone)

  11. #11
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    enleve ça de la boucle for des evenements:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    key=pygame.key.get_pressed()
    if key[K_RIGHT]:
        position_drone=position_drone.move(3,0)
    if key[K_LEFT]:
        position_drone= position_drone.move(-3,0)
    ça n'a pas besoin du tout d'etre dedans

  12. #12
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Le drone bouge mais est placé en haut de la fenetre, j'ai donc ajouté les coordonnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     fenetre.blit(drone,(275,650),position_drone)
    et le drone se met enfin en mouvement, le problème, c'est que lorsque je bouge le drone, il semble disparaittre sous l'image de la ville :
    Nom : Capture d’écran (23).png
Affichages : 450
Taille : 164,3 Ko

  13. #13
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    je te propose :
    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
    import pygame
     
    pygame.init()
    fenetre = pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour dirriger le drone.")
     
    ville = pygame.image.load("ville.jpg").convert()
    laser = pygame.image.load("laser.jpg").convert()
    drone = pygame.image.load("drone.jpg").convert()
     
    position_drone = drone.get_rect()
    position_drone = position_drone.move(275, 650)
     
    continuer = True
    while continuer:
       fenetre.blit(ville, (0, 0))
       fenetre.blit(drone, position_drone)
     
       pygame.event.pump()  # on demande a pygame de traiter les events en interne, et "liberer" le keypress, sans quoi le drone va continuer indefiniment a droite ou a gauche
       key = pygame.key.get_pressed()
     
       if key[pygame.K_RIGHT]:
          position_drone = position_drone.move(1, 0)
     
       if key[pygame.K_LEFT]:
          position_drone = position_drone.move(-1, 0)
     
       if pygame.event.get(pygame.QUIT) or key[pygame.K_ESCAPE]: # la croix ou <echap>
          continuer = False
     
       position_drone.clamp_ip(fenetre.get_rect())  # on ne veut pas que le drone sorte de la fenetre
       pygame.display.update()
    pygame.quit()

  14. #14
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    fenetre.blit(drone,position_drone) suffit pour afficher ton drone
    il faut aussi mettre les tests d'evenements au clavier en dehors de la boucle for
    je t'ai rajouté les limites pour ton drone pour ne pas qu'il parte de l'ecran:
    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
    import pygame
    import winsound
    from pygame.locals import *
    import random
    continuer=1
    pygame.init()
     
    fenetre=pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour diriger le drone.")
     
    ville=pygame.image.load("ville.jpg").convert()
    laser=pygame.image.load("laser.jpg").convert()
    drone=pygame.image.load("drone.jpg").convert()
    position_drone=drone.get_rect()
    position_drone=position_drone.move(275,450)
    fenetre.blit(ville,(0,0))
    pygame.display.flip()
     
    while continuer:
        key=pygame.key.get_pressed()
        if key[K_RIGHT]:
            if position_drone[0]<550:position_drone=position_drone.move(3,0)
        if key[K_LEFT]:
            if position_drone[0]>0:position_drone= position_drone.move(-3,0)
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,position_drone)
        for event in pygame.event.get():
            if event.type==QUIT:
                continuer=0
     
        pygame.display.update()
     
    pygame.quit()

  15. #15
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup

    Une épine retirée du pied, plus que trois ^^

    Du coup, pour la suite il faudrai que des tirs (modélisés avec le laser.jpg ) apparaissent de façon aléatoire à x = 175 (juste en dessous du vaiseau) et se dirrigent vers la ville.
    Mais comment les faire apparaitre ?

  16. #16
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    a mon avis,il faudrait faire une classe laser avec une fonction avance et après tu peut les stocker dans un liste

  17. #17
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    A vrai dire, je ne sais pas vraiment comment faire pour faire en sorte que le laser apparaisse à une abscisse aléatoire sur une ordonnée définie, le fait que le laser soit bloqué par le drone et que l'arrivée à une certaine abscisse du laser cause un game over. :/
    Les classes sont plus ou moins un mystère pour moi :/

  18. #18
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    pour avoir un nombre aléatoire,il faut faire random.randint(0,650) puis pour la classe,ça doit ressembler a ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class laser():
        def __init__(self,pos):
            self.pos=pos
            self.imglaser=pygame.image.load("laser.jpg").convert()
            self.position_laser=self.imglaser.get_rect()
            self.position_laser=self.position_laser.move(pos,0)
        def update_laser(self):
            self.position_laser=self.position_laser.move(0,1)
            fenetre.blit(self.imglaser,self.position_laser)
    renseigne toi sur les classes,c'est plutôt utile
    Code final : 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
    import pygame
    import winsound
    from pygame.locals import *
    import random
    continuer=1
    pygame.init()
    class laser():
        def __init__(self,pos):
            self.pos=pos
            self.imglaser=pygame.image.load("laser.jpg").convert()
            self.position_laser=self.imglaser.get_rect()
            self.position_laser=self.position_laser.move(pos,0)
        def update_laser(self):
            self.position_laser=self.position_laser.move(0,1)
            fenetre.blit(self.imglaser,self.position_laser)
    fenetre=pygame.display.set_mode((650,800))
    pygame.display.set_caption("Protegez la Ville : Utilisez les fleches pour diriger le drone.")
     
    ville=pygame.image.load("ville.jpg").convert()
    drone=pygame.image.load("drone.jpg").convert()
    position_drone=drone.get_rect()
    position_drone=position_drone.move(275,450)
    fenetre.blit(ville,(0,0))
    las=laser(random.randint(0,650))
    pygame.display.flip()
    while continuer:
        key=pygame.key.get_pressed()
        if key[K_RIGHT]:
            if position_drone[0]<550:position_drone=position_drone.move(3,0)
        if key[K_LEFT]:
            if position_drone[0]>0:position_drone= position_drone.move(-3,0)
        fenetre.blit(ville,(0,0))
        fenetre.blit(drone,position_drone)
        for event in pygame.event.get():
            if event.type==QUIT:
                continuer=0
        las.update_laser()
        pygame.display.update()
    pygame.quit()

  19. #19
    Candidat au Club
    Homme Profil pro
    En Art
    Inscrit en
    Mai 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : En Art
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Il y aurrai pas un moyen de rendre les tirs plus lent ? Car là, c'est impossible à intercepter ^^
    Du coup il faudrai une fonction qui fasse en sorte qu'il y ait un tir toutes les X secondes, et coder les colisions.
    Sinon, j'vais me pencher sur les classes, ça à l'air bien pratique.

  20. #20
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    le problème de la fonction move est qu'elle fonctionne avec un entier,il faudra donc créer un variable pour la hauteur que tu fait directement entrer dans position_laser[1] qui représente l'axe y,c'est pour ça que ont peut aussi mettre un tuple pour fenetre.blit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class laser():
        def __init__(self,pos):
            self.pos=pos
            self.imglaser=pygame.image.load("laser.jpg").convert()
            self.position_laser=self.imglaser.get_rect()
            self.position_laser=self.position_laser.move(pos,0)
            self.hauteur=0
        def update_laser(self):
            self.hauteur+=0.5
            self.position_laser[1]=self.hauteur
            fenetre.blit(self.imglaser,self.position_laser)
    je n'ai pas testé mais ça devrait marcher
    sinon,si le laser vas trop vite,met pygame.time.tick(30)dans la boucle de ton programme pour qu'il aille a 30 image par seconde

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [webdesign] Je dois reconstituer un frame : besoin d'un coup de main
    Par dom J dans le forum Balisage (X)HTML et validation W3C
    Réponses: 24
    Dernier message: 21/08/2006, 00h24
  2. Besoin d'un coup de main avec print
    Par scaleo dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2006, 21h12
  3. C++ besoin d'un coup de main
    Par Invité dans le forum C++
    Réponses: 7
    Dernier message: 19/04/2006, 13h28
  4. Problème avec fwrite() : besoin d'un coup de main
    Par yopuke dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2006, 09h43
  5. besoin d'un coup de main pour une requête ;)
    Par Fabouney dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/11/2005, 23h14

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