Je vais vous présenter un peu la situation:
Deux amis et moi-même avons choisi la spécialité ISN (informatique et sciences du numériques) pour le bac. A la fin de l'année, nous devons présenter un jeu à l'oral que nous avons créé, durant l'année. Je m'occupe principalement de l'aspect graphique du jeu (affichage d'images, animations...) mais bien sûr j'aide pour la partie programmation!Etant débutants, nous aimerions avoir vos avis et votre aide concernant le code que nous développons afin d'avoir un rendu final le plus beau et efficace possible. (pourquoi pas le mettre à disposition sur le net ensuite?
)
Les ressources utilisées:
-Pyscripter (+ simple pour la gestion de Python en tant que débutants)
-TKinter
-Adobe CS6
-Gimp
Description des éléments que nous cherchons à développer:
1) Une base entourée de murailles est attaquée par des vagues d'ennemis à intervalles réguliers.
2) Pour chaque ennemi éliminé, un montant d'argent/points est obtenu.
3) En échange d'argent, les murailles peuvent être réparées ou améliorées (système de banque)
4) Entre chaque vague, le joueur a un temps limité pour se préparer à la vague suivante, il se raccourci suivant le nombre de vagues.
5) animation d'un personnage controlé à l'aide des touches fléchées à l'intérieur de la base, animation des zombies.
6) Jauges de vie, murailles, affichage des points, de l'argent, temps avant prochaine vague, nombre de vagues etc.
Le Projet:
1) Le Menu:
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 from tkinter import* fenetre=Tk() fenetre.title("Anemia") #Supprime la barre de fenêtre + plein écran fenetre.geometry(str(fenetre.winfo_screenwidth())+"x"+str(fenetre.winfo_screenheight())+"+0+0") fenetre.overrideredirect(TRUE) #Création d'une image de fond can1=Canvas(fenetre,bg='black',height=1024,width=1280) can1.grid(row=0,rowspan=100,column=0,columnspan=100) photo=PhotoImage(file='foret.gif') item=can1.create_image(648,500,image=photo) #Création de boutons bouton_jouer=Button(fenetre,text='Jouer',command=fenetre.destroy) bouton_jouer.grid(row=40,column=50) bouton_regle=Button(fenetre,text='Regles',command=fenetre.destroy) bouton_regle.grid(row=50,column=50) bouton_quitter=Button(fenetre,text='Quitter',command=fenetre.destroy) bouton_quitter.grid(row=60,column=50) fenetre.mainloop() fenetre.destroy
Questions:
-Comment créer une fenêtre s'ajustant à n'importe quelle taille de l'écran?
-Comment créer une image s'ajustant à cette fenêtre dans ce canevas?
-Possibilité de créer des boutons personnalisés? Images cliquables?
2) Les Graphismes (contenu basé sur RPG Maker):
![]()
![]()
![]()
Animations Zombie 1 (.gif)
Bases par niveau (.gif):
![]()
Fond (herbe.gif):
Questions: -Comment intégrer d'abord l'herbe, puis la base par-dessus (j'ai entendu parler de "frames"), cela fonctionne-il comme des calques?
-Comment positionner cette base?
3) Le Code réalisé:
Déplacement d'un pion, réalisé à partir d'un exercice réalisé en cours:
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 from tkinter import * def Clavier(event): global PosX,PosY touche = event.keysym print(touche) # deplacement vers le haut if touche == 'Up': PosY -= 10 # deplacement vers le bas if touche == 'Down': PosY += 10 # deplacement vers la droite if touche == 'Right': PosX += 10 # deplacement vers la gauche if touche == 'Left': PosX -= 10 # on dessine le pion a* sa nouvelle position Canevas.coords(Pion,PosX -10, PosY -10, PosX +10, PosY +10) # Creation de la fenetre principale Mafenetre = Tk() Mafenetre.title('Pion') # position de depart du pion PosX = 230 PosY = 150 # Creation du canevas Largeur = 480 Hauteur = 320 Canevas = Canvas(Mafenetre, width = Largeur, height =Hauteur, bg ='white') Pion = Canevas.create_oval(PosX-10,PosY-10,PosX+10,PosY+10,width=2,outline='black',fill='red') Canevas.focus_set() Canevas.bind('<Key>',Clavier) Canevas.pack(padx =5, pady =5) # Bouton Quitter Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5) Mafenetre.mainloop()
Question: Comment remplacer cet objet par une animation? (qui s'arrete lorsque la touche est relachée?)
Toute aide nous ayant été apportée sera bien sûr signifiée dans les crédits du jeu
Merci d'avoir lu ce sujet et merci de vos éventuelles réponses!
Timcampy
Partager