Utilisation methode d'une classe dans une autre classe
titodore3
Messages postés
12
Statut
Membre
-
titodore3 Messages postés 12 Statut Membre -
titodore3 Messages postés 12 Statut Membre -
Bonjour,
Je vient tout juste de m'inscrire sur https://forums.commentcamarche.net/forum/
J'en viens à faire appel à vous, communauté de CCM dans le cadre d'un TFA (ravail de fin d'année). Il se fait que dans ce TFA, je me heurte à certains problèmes
Cela fait plusieurs jours que je cherche pour ce "léger" problème qui, à mon avis, possède une solution toute bête.
Donc pour l'instant je débute dans ce travail, c'est un jeu de Tower defense (Donc des tours qui doivent tuer des ennemis)
J'aimerais, dans une méthode de ma classe Tour, utiliser une méthode de la classe Ennemi (qui n'est pas liée par un héritage) afin de tirer sur cet ennemi et lui enlever des points de vie.
la méthode tirer() de la classe Tour utilise la méthode set_vie() de la classe Ennemi afin de modifier la vie , mais voila.. je ne parvient pas a utiliser la méthode.
J'ai déja demander a mon professeurs et à d'aurtes élèves et personne ne sais. Cela me bloque énormément dans mon projet.
Merci d'avance,
Titodore3
PS: Veuillez m'excuser pour la présentation, je ne suis pas très habitué aux forums alors je suis ouvert à vos conseils^^'
Voici mes 3 fichiers
Fichier 2
Fichier 3
Je vient tout juste de m'inscrire sur https://forums.commentcamarche.net/forum/
J'en viens à faire appel à vous, communauté de CCM dans le cadre d'un TFA (ravail de fin d'année). Il se fait que dans ce TFA, je me heurte à certains problèmes
Cela fait plusieurs jours que je cherche pour ce "léger" problème qui, à mon avis, possède une solution toute bête.
Donc pour l'instant je débute dans ce travail, c'est un jeu de Tower defense (Donc des tours qui doivent tuer des ennemis)
J'aimerais, dans une méthode de ma classe Tour, utiliser une méthode de la classe Ennemi (qui n'est pas liée par un héritage) afin de tirer sur cet ennemi et lui enlever des points de vie.
la méthode tirer() de la classe Tour utilise la méthode set_vie() de la classe Ennemi afin de modifier la vie , mais voila.. je ne parvient pas a utiliser la méthode.
J'ai déja demander a mon professeurs et à d'aurtes élèves et personne ne sais. Cela me bloque énormément dans mon projet.
Merci d'avance,
Titodore3
PS: Veuillez m'excuser pour la présentation, je ne suis pas très habitué aux forums alors je suis ouvert à vos conseils^^'
Voici mes 3 fichiers
from Tour import*
from Ennemi import*
tour1=Tour("air",10,10,10,10,10,10)# cree une tour air
ennemi1=Ennemi("air",50,50,50,250,50)
print("l'ennemi a ",ennemi1.get_vie(),"pv")
tour1.tirer()#ligne a laquelle j'aimerais tirer et enlever X points à un ennemi
print("l'ennemi a ",ennemi1.get_vie(),"pv")
#creer la fenetre graphique
#placer l'image correspondant au niveau
# placer tout les menus
Fichier 2
class Ennemi:
"cree et manipule un ennemi"
def __init__(self,typage,vitesse,valeur_score,butin,vie,direction):
"initialise l'ennemi avec ses attributs"
######intialisation des variables#####
self.vitesse=vitesse
self.typage=typage
self.valeur_score=valeur_score
self.vie=vie
self.butin=butin
self.direction=direction
######
# //\\Placer la tour sur la fenetre de jeu a une position precise
# et des attributs precis
###### methodes GET ##
def get_vitesse(self):
return self.vitesse
def get_typage(self):
return self.typage
def get_valeur_score(self):
return self.valeur_score
def get_butin(self):
return self.butin
def get_vie(self):
return self.vie
def get_direction(self):
return self.direction
##### methodes set ###
def set_vitesse(self,vitesse):
self.vitesse=vitesse
def set_typage(self,typage):
self.typage=typage
def set_valeur_score(self,valeur_score):
self.valeur_score=valeur_score
def set_butin(self,butin):
self.butin=butin
def set_vie(self,vie):
self.vie=vie
def set_direction(self,direction):
self.direction=direction
###### autres methodes ###
Fichier 3
from Ennemi import*
class Tour:
"cree et manipule une tour. lorsque l'utilisateur cliquera sur par ex"
"tour1, on instanciera une tour avec les attributs specifiques a tour1"
"( dans la base de donnees)"
nb_tours=0
def __init__(self,typage,portee,vitesse,cout,degats_min,degats_max,vente):
"initialise la tour avec ses attributs"
######intialisation des variables#####
self.typage=typage
self.portee=portee
self.vitesse=vitesse
self.cout=cout
self.degats_min=degats_min
self.degats_max=degats_max
self.vente=vente
######
# retire l'argent au joueur
#joueur.set_argent_actuel(-(self.cout))
# //\\Placer la tour sur la fenetre de jeu a une position precise
# et des attributs precis
###### methodes get ###
def get_typage(self):
return self.typage
def get_portee(self):
return self.portee
def get_vitesse(self):
return self.vitesse
def get_cout(self):
return self.cout
def get_degats_min(self):
return self.degats_min
def get_degats_max(self,):
return self.degats_max
def get_vente(self):
return self._vente
##### methodes set ###
def set_typage(self,typage):
self.typage=typage
def set_portee(self,portee):
self.portee=portee
def set_vitesse(self,vitesse):
self.vitesse=vitesse
def set_cout(self,cout):
self.cout=cout
def set_degats_min(self,degats_min):
self.degats_min=degats_min
def set_degats_max(self,degats_max):
self.degats_max=degats_max
def set_vente(self,vente):
self._vente=vente
###### autres methodes ###
def achat(self):
joueur.set_argent_actuel(self.vente)
def tirer(self):
ennemi1.set_vie(-10)
def cible(self):
pass
def portee(self):
pass
#def tirer(self,ennemi_vise):
# "en attribut: l'identifiant de l'ennemi vise"
#ennemi_vise.set_vie(-(self.degats_min))
#vente=property(get_vente,set_vente)
A voir également:
- Utilisation methode d'une classe dans une autre classe
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Bluetooth mercedes classe a - Forum Autoradio
- La ressource demandée est en cours d'utilisation ✓ - Forum Caméra
- Utiliser une tablette comme ecran pc - Guide
1 réponse
J'ai trouvé réponse à ma question via un autre forum
je cite :
"
tirer prend en paramètre un ennemi, donc sans regarder tout le code je dirais un truc du genre tour1.tirer(ennemi1)
"
"
Dans le programme principal, il faut mettre :
1
tour1.tirer(ennemi1) #ligne a laquelle j'aimerais tirer et enlever X points a un ennemi
Dans la classe Tour :
1
2
def tirer(self,mechant):
mechant.recoit_coup(10)
Et dans la classe Ennemi :
1
2
def recoit_coup(self,coup):
self.vie -= coup
"
je cite :
"
tirer prend en paramètre un ennemi, donc sans regarder tout le code je dirais un truc du genre tour1.tirer(ennemi1)
"
"
Dans le programme principal, il faut mettre :
1
tour1.tirer(ennemi1) #ligne a laquelle j'aimerais tirer et enlever X points a un ennemi
Dans la classe Tour :
1
2
def tirer(self,mechant):
mechant.recoit_coup(10)
Et dans la classe Ennemi :
1
2
def recoit_coup(self,coup):
self.vie -= coup
"