Ursina Python detecter si une entité est cliquée
Fermémamiemando Messages postés 33380 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 15 sept. 2023 à 19:29
- Ursina Python detecter si une entité est cliquée
- Comment détecter un traceur sur téléphone - Accueil - Confidentialité
- Citizen code python avis - Accueil - Outils
- Détecter clé usb - Guide
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
9 réponses
Modifié le 12 sept. 2023 à 15:54
Bonjour,
La fonction input() est définie en ligne 25, mais elle n'est jamais appelée...
Modifié le 10 sept. 2023 à 12:26
Comment ça, tu as remarqué ça ?
Ce n'est pas toi qui as écris le code ?
Tu ne sais pas comment il fonctionne ?
Modifié le 12 sept. 2023 à 15:56
Si, j'ai écrit le code avec une vidéo youtube. Le problème, c'est que je n'ai pas fait exactement la même chose, et mon programme ne marche pas contrairement au sien.
Modifié le 12 sept. 2023 à 15:52
class ColorBox(Button): def __init__(self, position=(5, 2, 5)): r = random.randint(0, 255) g = random.randint(0, 255) b = random.randint(0, 255) super().__init__( position=position, model="cube", color=color.color(r, g, b), parent=scene, origin_y= 0.5) def input(self): if self.hovered: self.color.color(r, g, b)
J'ai vite changé, car le changement de couleurs ne marchait pas. Mais je ne sais toujours pas, ni comment, ni où appeler la fonction.
Modifié le 12 sept. 2023 à 15:53
Si tu débutes en Python, tu devrais commencer par des trucs plus simples. Connais tu les bases sur les classes, les fonctions et comment les invoquer ?
Je ne pratique pas Ursina, mais ta fonction input() est une méthode de la classe ColorBox, et en général, on crée un ou des objets à partir d'une classe et ensuite on leur applique les méthodes utiles
Exemple :
class Personne: def __init__(self, nom, prenom): self.nom = nom self.prenom = prenom def presenter(self) : return self.nom + " " + self.prenom #Création d'une personne: p1 = Personne('Jean', 'Transcène') #appel de la méthode presenter: print(p1.presenter())
Modifié le 12 sept. 2023 à 15:59
J'ai trouvé : dans ursina, la fonction input est implicitement utilisée. On n'a pas besoin de l'appeler explicitement. Je l'avais juste indentée trop à droite et elle n'était pas correctement prise en compte dans le button. Merci quand même !
Modifié le 12 sept. 2023 à 16:00
Bonjour,
(texte original, avant correction) je l'avais juste mise trop a droite et elle n'était pas comptée dans le button
C'est ce qu'on appelle une erreur d'indentation, si tu vois ce que c'est et à quoi ca sert (de la façon dont tu en parles, on ne dirait pas)
Comme tu avais fait, la fonction input était à l'intérieur de la fonction __init__. D'où l'intérêt de revoir les bases de Python et de commencer par des trucs simples, au lieu de recopier du code vu sur Youtube
"Science sans conscience n'est que ruine de l'âme" -- Rabelais
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question12 sept. 2023 à 16:05
Bonjour,
Pour revenir à la question initiale, voir cette discussion.
Je t'invite toutefois (comme Phil_1857 le dit fort justement) à ne pas mettre la charrue avant les bœufs. Tu ne pourras pas aller bien loin avec ursina tant que tu n'auras pas les bases en python (en particulier tout ce qui est lié à l'indentation), en algorithmique (fonctions, conditions, boucles ...) et en programmation objet (classes, instances, méthodes, ...). Il existe de nombreux tutoriels gratuits en ligne pour découvrir python, ce serait sans doute un bon début.
Quand ceci sera acquis, il sera temps de travailler avec un module déjà écrit (pourquoi pas ursina), comprendre la documentation et le éventuels bouts de code que tu pourrais trouver sur Internet.
Si tu décides de faire un patchwork de bouts de codes sans les comprendre et en les bidouillant sans trop comprendre ni comment, ni pourquoi, ton code n'aura rapidement aucun sens et tu n'atteindras pas tes objectifs (voire tu risques de te décourager).
Après... à toi de voir :-)
Bonne chance
12 sept. 2023 à 16:42
Bonjour Mamiemando,
Sympa d'avoir ajouté l'auteur de la citation dans mon message
Par contre, comment fais-tu pour mettre en forme le texte original en gris
au début ?
13 sept. 2023 à 15:51
Hello Phil,
Sympa d'avoir ajouté l'auteur de la citation dans mon message
De rien :-)
Par contre, comment fais-tu pour mettre en forme le texte original en gris
Avec le bouton "citation", le bouton le plus à droite (avec une icône guillemets) dans la barre de mise en forme des messages.
Bonne journée
13 sept. 2023 à 18:43
Heuuu .... serait-ce réservé aux modérateurs ? :-)
13 sept. 2023 à 18:51
Bonsoir Phil,
Heuuu .... serait-ce réservé aux modérateurs ? :-)
Aussi intrigué que toi, j'ai vérifié et j'ai bien les guillemets en fin de ligne d'icones. Et l'utilise ici pour la première fois.
Mais peut-être n'est-ce accessible qu'aux modérateurs et contributeurs.
15 sept. 2023 à 13:59
C'est vrai que ça n'est pas une fonctionnalité à mettre entre toutes les mains :-) Plus sérieusement je vais remonter le bug et on verra ce qu'il se passera.
15 sept. 2023 à 16:46
Ouii ce serait bien, car entre répondre à la discussion et commenter, on se perd un peu dans l'historique :-)
15 sept. 2023 à 19:29
Bonjour, je ne sais pas si vous avez accès à ce forum, mais j'ai ouvert une discussion sur cet aspect ici. Selon brupala et Gadjow, ce fait est déjà connu d'Adraen, mais il n'est pas très clair à mes yeux s'il s'agit d'un choix délibéré ou non, ni les raisons qui sont derrières.
14 sept. 2023 à 10:22
Salut Georges,
OK, merci
Modifié le 12 sept. 2023 à 15:51
Oui, j'ai remarqué, mais je ne sais pas où l'appeler.