Snake like : le serpent ne veut pas bouger
Oyanel
-
Oyanel -
Oyanel -
Bonjour,
je fais appelle à la communauté de comment ça marche car je n'arrive pas à comprendre pourquoi mon carré ne veut pas se déplacer, c'est le début de mon snake et il ne fonctionne pas du tout. :/ J'avais déjà présenter un snake sous une autre forme et j'ai donc refait le snake avec des listes mais ça ne semble pas fonctionner.
Merci pour votre aide
je fais appelle à la communauté de comment ça marche car je n'arrive pas à comprendre pourquoi mon carré ne veut pas se déplacer, c'est le début de mon snake et il ne fonctionne pas du tout. :/ J'avais déjà présenter un snake sous une autre forme et j'ai donc refait le snake avec des listes mais ça ne semble pas fonctionner.
Merci pour votre aide
from tkinter import * from random import * from PIL import Image, ImageTk # ****************** # * * # * Fonctions * # * * # ****************** # on creer une partie: def newGame(): global flag, pX, pY, p, flag2, flag4, score,carre1 can1.delete(text1) can1.delete(img1) flag2=1 flag4=1 score=0 pX = randrange(10, fen1.winfo_screenwidth()-150) pY = randrange(10, fen1.winfo_screenheight()-150) p=can1.create_oval(pX, pY, pX+10, pY+10,fill="green")#création d'une pomme à un endroit aléatoire if flag == 0: #Si jeu n'est pas activé flag = 1 #Alors activation du programme bou2.config(state= DISABLED) #Désactiver (griser) le bouton démarrer Serpent_avance() #Activation de la fonction "serpent avance" def Serpent_avance(): "déplacement du snake" #Fonction qui permet le deplacement du snake global x, y, dx, dy, flag, flag2, p, pX, pY,score #Global: repertorie les variables utilisées dans la fonction du dessus if abs(snake[0]-pX) < 17 and abs(snake[1]-pY) < 17 : #Quand serpent passe sur la pomme, can1.create_oval(x, y, x+20, y+20, fill="black") can1.delete(p)# disparition pX = randrange(10, fen1.winfo_screenwidth()-150) #réapparition de la pomme pY = randrange(10, fen1.winfo_screenheight()-150) p=can1.create_oval(pX, pY, pX+10, pY+10,fill="green") score=score+10 if snake[0] > fen1.winfo_screenwidth()-100: #Quand serpent arrive sur le mur coté droit, snake[0]=10 snake[2]=30 #Réapparait de l'autre coté if snake[1] > fen1.winfo_screenheight()-5: #IDEM mur du bas snake[1]=10 snake[3]=30 #Réapparait au mur du haut if snake[0] < 5: #Quand serpent arrive sur le mur coté gauche snake[0]=fen1.winfo_screenwidth()-100 snake[2]=fen1.winfo_screenwidth()-120 #Réapparait mur coté droit if snake[1] < 5: #Quand serpent arrive sur le mur haut snake[1]=fen1.winfo_screenheight()-10 #Réapparait sur le mur bas snake[3]=fen1.winfo_screenheight()-30 snake[0]=snake[0]+dx # faire avancer le serpent automatiquement snake[1]=snake[1]+dx snake[2]=snake[0]+20 snake[3]=snake[1]+20 can1.coords(Serpent, snake[0], snake[11], snake[2], snake[3]) # coordonées du snake if flag >0: #Quand jeu activé fen1.after(50,Serpent_avance) #boucler, après 50 millisecondes (vitesse de repetition) def depl_gauche(event): global flag, dx, dy if flag==1: dx, dy = -20, 0 def depl_droite(event): global flag, dx, dy if flag==1: dx, dy = 20, 0 def depl_haut(event): global flag, dx, dy if flag==1: dx, dy = 0, -20 def depl_bas(event): global flag, dx, dy if flag==1: dx, dy = 0, 20 def pause(): #Pause global flag, pause, flag2, flag4, score, score1 if flag4 ==1: if flag == 1 and flag2 == 1: pause=can1.create_text(fen1.winfo_screenwidth()/2-100,fen1.winfo_screenheight()/2-5,font=('Fixedsys',18),text="PAUSE") score1=can1.create_text(150,150,font=('Fixedsys',18),text="Score : "+str(score)) can1.create_text(fen1.winfo_screenwidth(),fen1.winfo_screenheight(),font=('Fixedsys',18),text=print(score)) flag=0 elif flag==0 and flag2 == 1: flag=1 can1.delete(pause) can1.delete(score1) Serpent_avance() def fullscreen(): fen1.overrideredirect(1) fen1.geometry("%dx%d+0+0" % (w, h)) # ********************* # * Programme * # * Princal * # ********************* #création de la fenêtre fen1 = Tk() fen1.title("Snake") x, y = (fen1.winfo_screenheight()+250)/2, (fen1.winfo_screenwidth()-250)/2 dx, dy = 20, 0 flag =0 flag4=0 #pour ne pas appuyer sur pause qi le jeu ne démarre pas image_tk2= ImageTk.PhotoImage(Image.open("serpent.jpg")) image_tk = ImageTk.PhotoImage(Image.open("image.jpg")) #on la transforme pour tk #on la met dans le canvas can1 = Canvas(fen1,width=fen1.winfo_screenwidth()-100, height=fen1.winfo_screenheight()) can1.pack() img = can1.create_image(0,0, anchor = NW, image=image_tk) can1.pack(side=LEFT, padx =10, pady =10) snake=[x, y, x+20, y+20] Serpent=[can1.create_rectangle(snake[0], snake[1], snake[2], snake[3], fill="yellow")] img1 = can1.create_image(0,0, anchor = NW, image=image_tk2) text1=can1.create_text(fen1.winfo_screenwidth()/2,fen1.winfo_screenheight()-400,font=('Fixedsys',18),text="appuyer sur Démarrer") bou2 = Button(fen1, text='Démarrer', width =8, command = newGame) bou2.pack() bou3= Button(fen1, text='Pause',width= 8,command= pause) bou3.pack() bou4 = Button(fen1, text='Quitter', width= 8, command=fen1.destroy) bou4.pack(side=BOTTOM) bou5 = Button(fen1, text='Plein écran', width= 8, command=fullscreen) bou5.pack() # Quelques exemples de touches fen1.bind("<Up>", depl_haut)#haut fen1.bind("<Down>", depl_bas)#bas fen1.bind("<Left>", depl_gauche)#gauche fen1.bind("<Right>", depl_droite)#Droite #lancement du gestionnaire d'évènement fen1.mainloop()
A voir également:
- Snake like : le serpent ne veut pas bouger
- Voir like instagram - Guide
- Coco like - Accueil - Réseaux sociaux
- Jeux google caché snake - Guide
- Wawacity like - Accueil - Outils
- Bug like tiktok - Forum TikTok