Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Jeux-vidéos
Autres jeux
Questions, aides et recherches
Coder space invaders
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Cocobali54" data-source="post: 7426699" data-attributes="member: 939100"><p>Bonjour, alors voilà, je dois coder le fameux jeu space invaders avec tkinter et j'ai du mal, j'ai seulement un bout du programme, le voici :</p><p></p><p>from tkinter import *</p><p>from random import randint</p><p></p><p>class Joueur:</p><p> def __init__(self, x, y):</p><p> pass</p><p></p><p> def move(self, event):</p><p> """ Gestion des évènements clavier : déplacement gauche/droite et tir d'une rocket"""</p><p> c = event.char</p><p> pass</p><p></p><p> def draw(self, can):</p><p> """ Dessin du vaisseau du joueur dans le canevas"""</p><p> self.forme = can.create_rectangle(self.x - 20, self.y - 10, self.x + 20, self.y + 10,fill='white')</p><p></p><p> def getPosition(self):</p><p> """ Renvoi des coordonnées (x, y) du vaisseau du joueur """</p><p> pass</p><p></p><p> def delRocket(self, rocket):</p><p> """ Suppresion d'une rocket dans le tableau des rockets déja tirées par le joueur """</p><p> pass</p><p></p><p></p><p>class Rocket:</p><p> def __init__(self, x, y):</p><p> pass</p><p></p><p> def move(self):</p><p> """ Gestion du mouvement de la rocket """</p><p> pass</p><p></p><p> def draw(self, can):</p><p> """ Affichage de la rocket dans le canevas """</p><p> self.forme = can.create_rectangle(self.x - 5, self.y - 10, self.x + 5, self.y + 10,fill='red')</p><p></p><p> def hit(self, ennemi):</p><p> """ Méthode permettant de déterminer si la rocket a touché un ennemi """</p><p> pass</p><p></p><p>class Ennemi:</p><p> def __init__(self, x, y):</p><p> pass</p><p></p><p> def draw(self, can):</p><p> """ Affichage de l'ennemi dans le canevas """</p><p> self.forme = can.create_oval(self.x - 20, self.y - 20, self.x + 20, self.y + 20,fill='blue')</p><p></p><p> def move(self):</p><p> """ Gestion du mouvement de l'ennemi """</p><p> pass</p><p></p><p> def getPosition(self):</p><p> """ Renvoi des coordonnées (x, y) de l'ennemi """</p><p> pass</p><p></p><p>class Bombe:</p><p> def __init__(self, x, y):</p><p> pass</p><p></p><p> def move(self):</p><p> """ Gestion du mouvement de la bombe """</p><p> pass</p><p></p><p> def draw(self, can):</p><p> """ Affichage de la bombe dans le canevas """</p><p> self.forme = can.create_rectangle(self.x - 5, self.y - 10, self.x + 5, self.y + 10,fill='blue')</p><p></p><p> def hit(self, joueur):</p><p> """ Méthode permettant de déterminer si la bombe a touché le joueur """</p><p> pass</p><p></p><p>class Game:</p><p> def __init__(self):</p><p> self.ennemis = [] # tableau des envahisseurs</p><p> self.bombes = [] # tableau des bombes larguées par les ennemis</p><p></p><p> self.fen = Tk() # fenêtre de jeu</p><p> self.fen.title('Envahisseurs') # titre de la fenêtre</p><p> self.can = Canvas(self.fen, width = 1024, height = 768, background='black') # canevas de dessin</p><p> self.can.pack()</p><p></p><p> # création du joueur</p><p> self.joueur = Joueur(550, 700) # instanciation du joueur</p><p></p><p> self.fen.bind("<Key>", self.joueur.move) # gestion des déplacements clavier du joueur</p><p></p><p> # instanciation des ennemis ( 3 rangées de 10 )</p><p> for i in range(10):</p><p> self.ennemis.append(Ennemi(100*i+50, 50))</p><p> self.ennemis.append(Ennemi(100*i+50, 100))</p><p> self.ennemis.append(Ennemi(100*i+50, 150))</p><p></p><p> self.run() # lancement du jeu</p><p></p><p> self.fen.mainloop() # boucle principale d'évènements Tkinter</p><p></p><p> def run(self):</p><p> self.can.delete('all') # effacement général</p><p></p><p> # déplacement ennemis et largage éventuel d'une bombe</p><p> for ennemi in self.ennemis: # parcours du tableau des ennemis</p><p> ennemi.draw(self.can) # affichage</p><p> ennemi.move() # déplacement</p><p> if randint(1, 500) < 5: # larguage d'une bombe avec une probabilité de 5/500</p><p> x = ennemi.getPosition()[0] # coordonnées de</p><p> y = ennemi.getPosition()[1] # l'ennemi</p><p> self.bombes.append(Bombe(x, y + 20)) # largage d'une bombe à partir de la position de l'ennemi ( un peu en dessous...)</p><p></p><p> # affichage vaisseau joueur</p><p> self.joueur.draw(self.can)</p><p></p><p> # déplacement des rockets, et test si elles touchent un envahisseur</p><p> for rocket in self.joueur.rockets: # parcours du tableau des rockets déja tirées par le joueur</p><p> rocket.draw(self.can) # affichage de la rocket</p><p> est_tiree = rocket.move() # est-elle toujours en vol ?</p><p> if (not est_tiree): # si non,</p><p> self.joueur.delRocket(rocket) # on la supprime du tableau</p><p></p><p> for ennemi in self.ennemis: # parcours du tableau des ennemis encore en jeu</p><p> if rocket.hit(ennemi): # la rocket touche-t-elle l'ennemi ?</p><p> self.ennemis.remove(ennemi) # si oui, on retire l'ennemi de son tableau</p><p> self.joueur.delRocket(rocket) # et de même pour la rocket</p><p></p><p> # idem pour les bombes des ennemis</p><p> for bombe in self.bombes: # pour chaque bombe déja larguée</p><p> bombe.draw(self.can) # affichage de la bombe</p><p> est_tiree = bombe.move() # est-elle toujours en vol ?</p><p> if (not est_tiree): # si non,</p><p> self.bombes.remove(bombe) # on la supprime du tableau</p><p></p><p> if bombe.hit(self.joueur): # la bombe touche-t-elle le joueur ?</p><p> self.bombes.remove(bombe) # si oui on la supprime du tableau</p><p> self.fen.destroy() # et on ferme la fenêtre !</p><p></p><p> self.fen.after(30,self.run) # boucle d'animation</p><p></p><p></p><p>Merci d'avance</p></blockquote><p></p>
[QUOTE="Cocobali54, post: 7426699, member: 939100"] Bonjour, alors voilà, je dois coder le fameux jeu space invaders avec tkinter et j'ai du mal, j'ai seulement un bout du programme, le voici : from tkinter import * from random import randint class Joueur: def __init__(self, x, y): pass def move(self, event): """ Gestion des évènements clavier : déplacement gauche/droite et tir d'une rocket""" c = event.char pass def draw(self, can): """ Dessin du vaisseau du joueur dans le canevas""" self.forme = can.create_rectangle(self.x - 20, self.y - 10, self.x + 20, self.y + 10,fill='white') def getPosition(self): """ Renvoi des coordonnées (x, y) du vaisseau du joueur """ pass def delRocket(self, rocket): """ Suppresion d'une rocket dans le tableau des rockets déja tirées par le joueur """ pass class Rocket: def __init__(self, x, y): pass def move(self): """ Gestion du mouvement de la rocket """ pass def draw(self, can): """ Affichage de la rocket dans le canevas """ self.forme = can.create_rectangle(self.x - 5, self.y - 10, self.x + 5, self.y + 10,fill='red') def hit(self, ennemi): """ Méthode permettant de déterminer si la rocket a touché un ennemi """ pass class Ennemi: def __init__(self, x, y): pass def draw(self, can): """ Affichage de l'ennemi dans le canevas """ self.forme = can.create_oval(self.x - 20, self.y - 20, self.x + 20, self.y + 20,fill='blue') def move(self): """ Gestion du mouvement de l'ennemi """ pass def getPosition(self): """ Renvoi des coordonnées (x, y) de l'ennemi """ pass class Bombe: def __init__(self, x, y): pass def move(self): """ Gestion du mouvement de la bombe """ pass def draw(self, can): """ Affichage de la bombe dans le canevas """ self.forme = can.create_rectangle(self.x - 5, self.y - 10, self.x + 5, self.y + 10,fill='blue') def hit(self, joueur): """ Méthode permettant de déterminer si la bombe a touché le joueur """ pass class Game: def __init__(self): self.ennemis = [] # tableau des envahisseurs self.bombes = [] # tableau des bombes larguées par les ennemis self.fen = Tk() # fenêtre de jeu self.fen.title('Envahisseurs') # titre de la fenêtre self.can = Canvas(self.fen, width = 1024, height = 768, background='black') # canevas de dessin self.can.pack() # création du joueur self.joueur = Joueur(550, 700) # instanciation du joueur self.fen.bind("<Key>", self.joueur.move) # gestion des déplacements clavier du joueur # instanciation des ennemis ( 3 rangées de 10 ) for i in range(10): self.ennemis.append(Ennemi(100*i+50, 50)) self.ennemis.append(Ennemi(100*i+50, 100)) self.ennemis.append(Ennemi(100*i+50, 150)) self.run() # lancement du jeu self.fen.mainloop() # boucle principale d'évènements Tkinter def run(self): self.can.delete('all') # effacement général # déplacement ennemis et largage éventuel d'une bombe for ennemi in self.ennemis: # parcours du tableau des ennemis ennemi.draw(self.can) # affichage ennemi.move() # déplacement if randint(1, 500) < 5: # larguage d'une bombe avec une probabilité de 5/500 x = ennemi.getPosition()[0] # coordonnées de y = ennemi.getPosition()[1] # l'ennemi self.bombes.append(Bombe(x, y + 20)) # largage d'une bombe à partir de la position de l'ennemi ( un peu en dessous...) # affichage vaisseau joueur self.joueur.draw(self.can) # déplacement des rockets, et test si elles touchent un envahisseur for rocket in self.joueur.rockets: # parcours du tableau des rockets déja tirées par le joueur rocket.draw(self.can) # affichage de la rocket est_tiree = rocket.move() # est-elle toujours en vol ? if (not est_tiree): # si non, self.joueur.delRocket(rocket) # on la supprime du tableau for ennemi in self.ennemis: # parcours du tableau des ennemis encore en jeu if rocket.hit(ennemi): # la rocket touche-t-elle l'ennemi ? self.ennemis.remove(ennemi) # si oui, on retire l'ennemi de son tableau self.joueur.delRocket(rocket) # et de même pour la rocket # idem pour les bombes des ennemis for bombe in self.bombes: # pour chaque bombe déja larguée bombe.draw(self.can) # affichage de la bombe est_tiree = bombe.move() # est-elle toujours en vol ? if (not est_tiree): # si non, self.bombes.remove(bombe) # on la supprime du tableau if bombe.hit(self.joueur): # la bombe touche-t-elle le joueur ? self.bombes.remove(bombe) # si oui on la supprime du tableau self.fen.destroy() # et on ferme la fenêtre ! self.fen.after(30,self.run) # boucle d'animation Merci d'avance [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Jeux-vidéos
Autres jeux
Questions, aides et recherches
Coder space invaders
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut