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:


Capture d'écran du 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): Nom : herbe.gif
Affichages : 1581
Taille : 256,2 Ko

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