Bonjour,
Je travaille sur un projet, qui avance bien mais j'ai rencontré un petit problème. En gros c'est un jeu des bombardes, avec des canons qui tirent à tour de rôles, mais j'aimerais aussi faire en sorte qu'on ne puisse pas mitrailler l'adversaire non plus. C'est donc pourquoi j'ai pensé a une désactivation temporaire du bouton de tir (le temps du vol de l'obus). J'ai donc créé deux fonctions à cet effet (voir plus bas). Mais d'abord voici quelques infos pour bien comprendre le problème : je possède deux classes : canon (crée le canon, gère le tir, etc...) et bureau (un "outil" qui se rapporte à un canon en particulier et qui gère l'orientation du canon, le score, etc...). Puisque le bouton doit être désactivé pendant le vol de l'obus, je déclenche une fonction qui va désactiver le bouton (il sera réactivé lorsque l'obus aura touché une cible). Comme je ne sais pas accéder directement à Bureau() depuis Canon(), j'ai créé une fonction "intermédiaire" qui est libre de toute classe et qui va déclencher une méthode de maclasse Bureau(), voici les fonctions en questions :
Code:def changer_etat_btir(self) : # méthode de Bureau() if self.b_tir[state] == "NORMAL" : self.b_tir[state] = "DISABLED" else : self.b_tir[state] = "NORMAL"Mais c'est à ce moment que survient le problème : si je laisse comme ça j'obtiens un TypeError (missing 1 required positional argument: 'self'), mais si je retire self de changer_etat_btir, j'ai un NameError (name 'self' is not defined). Donc je suis bloqué vu que je ne sais pas comment arriver à modifier l'état du bouton de tir.Code:def etat_btir() : # fonction déclenchée au moment du tir Bureau.changer_etat_btir()
N'hésitez pas si vous ne comprenez pas totalement mais je pense que l'essentiel est là.
Merci.
-----