Script de recherche automatique de sprites
Salut,
J'ai suis entrain de faire mon TFE intutilé "Bananas Defender", c'est un Tower Defense dont le but est de protéger les bananes d'une invasion de Donkey Kong .
Actuellement, j'ai finit de coder le système de génération de la map et je suis entrain de coder le système de création automatique de Donkey Kong et les faire automatiquement aller vers les bananes .
Voici ma class DK qui est on va dire l'IA des Donkey Kong
Code:
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
| class DK:
#Classe permettant de générer les ennemis qui sont des Donkey Kong
def __init__(self, structure_niveau, png, niveau):
#Sprites du personnage
self.donkey = pygame.image.load(png).convert_alpha()
#Position du personnage en cases et en pixels
self.case_x = 0
self.case_y = 0
self.x = 0
self.y = 0
#Niveau dans lequel le personnage se trouve
self.niveau = niveau
def rechercher(self,case_x,case_y):
#Si un Donkey Kong arrive à la banane, on return 'end'
if structure_niveau[self.case_y][self.case_x+1] == 'd':
self.game = 'end'
return self.game
#Sinon on recherche le "way" obstacle sur la ligne
if structure_niveau[case_y][case_x+1] == 'w':
#Déplacement d'une vers la droite si c'est un "way"
self.case_x += 1
#Calcul de la position de de la case "way" pour Donkey Kong
self.x = case_x * 40
self.y = case_y * 40
self.new_pos = "(+self.x+,+self.y+)"
return self.new_pos
#Si elle n'est pas sur la même ligne, on regarde si elle est sur la colone
elif structure_niveau[self.case_y+1][self.case_x] == 'w':
self.case_y += 1
self.x = case_x * 40
self.y = case_y * 40
self.new_pos = "(+self.x+,+self.y+)"
return self.new_pos |
Et voila comment j'esseye de générer mes 10 Donkey Kong
Code:
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 43 44 45 46 47 48 49 50
|
#Combien d'ennemis
nb_ennemis = 10
liste_ennemis = []
#Création de Donkey Kong
donkey = DK(structure_niveau, "image/dk.png", choix)
for event in pygame.event.get():
cpt_ennemis = 0
while (cpt_ennemis < nb_ennemis) :
#Affichages aux nouvelles positions
niveau.afficher(fenetre)
#Position par défault de Donkey Kong
"""image_dk = pygame.image.load(dkpng).convert()
fenetre.blit(image_dk,(0,0))"""
pygame.display.flip()
pygame.time.Clock().tick(1)
#Lancement de Donkey Kong
i = 0
x = 0
y = 0
o = 0
donkeyseek = donkey.rechercher(0,0)
liste_ennemis.append(donkey)
liste_ennemis.append[i](donkeyseek)
while liste_ennemis[i][o] != "end":
fenetre.blit(image_dk,donkey.rechercher(x,y))
pygame.display.flip()
new_pos = liste_ennemis[i][o]
liste_ennemis[i][o] = liste_ennemis[i][donkey.rechercher[new_pos]]
if liste_ennemis[i][o] == "end":
continuer_accueil = 0
continuer_jeu = 0
continuer = 0 |
Voici mon erreur :
liste_ennemis.append[i](donkeyseek)
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
Merci d'avance pour vos réponse