Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déplacement d'objet dans un canvas

Problème de débutant

    14 juillet 2019 à 11:29:36

    from tkinter import *
    
    def fen():
        global photo,ship,dx
        # Le vaisseaux
        photo = PhotoImage(file="ship3.gif")
        ship=can.create_image(dx,530,image=photo)
      
        # Permet qu'il ne sorte pas du cadre de jeux 
        if dx < 35:
            dx = 35
        
        if dx > 970:
            dx = 970
        # Actualise la fenêtre toute les 30 ms
        if flag >0 :
            fen1.after(30,fen)
            
    def droite(event): # Déplacement à droite 
        global dx 
        dx = dx + 15
            
    def gauche(event): # Déplacement à gauche
        global dx
        dx = dx - 15
    
        
    def tir2 (event):
        global balle,shoot,ytir
        
        # Coordonnées des projectiles 
        xtir = dx-5
        ytir = 450
        xtir2 = dx+5
        ytir2 = 460
        
        # Création du tir 
        shoot= can.create_oval(xtir,ytir,xtir2,ytir2,fill='red')
        
        depla()
        
        
    def depla():# Met le tir en mouvement
    
        can.move(shoot,0,-5)
        
        # Actualise la fenêtre toute les 100 ms
        if flag >0 :
            fen1.after(100,depla)
            
    # Programme principal
    fen1 = Tk()
    fen1.title("Space Invades")
    fen1.geometry("1000x600")
    
    # Création du canvas
    can = Canvas(fen1, width=1100, height=1100,bg='black')
    can.place(x=-5, y=0)
    
    # Déplacement latéral du vaisseaux 
    dx= 500
    
    flag = 1
    
    can.bind_all("<Left>",gauche)
    can.bind_all("<Right>",droite)
    can.bind_all("<space>",tir2)
    
    fen()
    
    fen1.mainloop()
    
    
    
    

    Je sais d'avance que mon code est loin d'être parfait, l'objectif est de créer un SpaceInvaders, pour s’entraîner pour mon DUT en septembre bref, ici le problème est avec la fonction depla et tir2

    Le projectile est bien tiré, mais quand on retire le premier s'arrête en chemin et plus on tire de projectiles plus la vitesse de celui-ci augmente ce qui ne devrait pas arriver.

    Merci d'avance pour votre aide et votre temps.

    Voici le gif

    -
    Edité par Andragol 14 juillet 2019 à 13:56:25

    • Partager sur Facebook
    • Partager sur Twitter
      Staff 14 juillet 2019 à 11:53:37

      Bonjour, j'ai inversé ton titre et ton sous titre. "Problème de débutant" ne convient pas comme titre.

      Voir Règles générales du forum

      • Partager sur Facebook
      • Partager sur Twitter

      Déplacement d'objet dans un canvas

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown