Les propriétés des comportement et un override des valeurs par instance

Bonjour

Je suis sur la création d’une extension pour des boutons dans GD via les événement disponible.
J’utilise un sprite pour le fond du bouton et un texte pour le nom du bouton.
Dans les variables objet du sprites je met des propriétés (TextColor, BackgroundColor, isDisabled, inputText) avec des valeurs par défaut et leurs valeurs sont écrasé avec des valeurs spéficique à chaque instances sur la scène.
Comme ça chaque instances de sprite est un bouton avec des couleurs et textes différent initialisé avec les propriétés se trouvant dans les variables d’instance.

Mais ce système passe par les variables objet et instance. Je me suis dit qui’il est mieux de ne pas demander à l’utilisateur de créer ces propriétés.

Donc j’ai voulu utiliser les comportements, sauf que les propriétés des comportements sont pour l’objet et il n’y a pas moyen d’avoir une valeur pour chaque instances comme avec les variables.

Il est aussi nécessaire pour l’utilisateur de créer un objet sprite et un objet texte pour que ça fonctionne.
C’est pourquoi je demande de temps en temps à pouvoir créer n’importe quel type d’objet depuis les événements sans avoir à le définir dans la liste des objets de la scène.

Pour l’instant l’extension n’a donc rien de simple mais ça fonctionne en attendant le support des inputs dans GD :wink:

J’essai des choses aussi avec des listes toujours via les variables, avec les variables de structure.

Je partagerais l’extension prochainement elle a besoin d’un peu de polissage en plus d’explications ^^
Elle n’est pas destiné a être incluse dans les extensions de GD car elle est vraiment pas des plus simple. Des vrais objet boutons/liste devraient être inclus par défaut dans GD à l’avenir.

2 Likes

+1 Bouh, pour les boutons j’ai quasiment la même chose : une sprite en arrière plan, un texte qui se centre horizontalement/verticalement en fonction du label de bouton choisi, la sprite d’arrière plan qui se redimensionne avec un padding en fonction de la taille du texte… Je pensais moi aussi faire un comportement pour automatiser ça, mais même tarif que toi, j’ai dû conserver des variables dans les instances.

Je me suis fait la même réflexion pour les boutons, à savoir que l’idéal serait d’avoir une sorte de galerie de “components” intégrée à GD : on choisirait par exemple un bouton dans cette galerie de components, celà ajouterait directement à la liste d’objets un objet texte et un objet sprite (avec une ressource par défaut basique). Libre à l’utilisateur ensuite de customiser.

4ian à suggéré des prefab, je ne sais pas comment il voit ça dans GD.
Il serait toujours nécessaire de définir leur contenu à l’avance ?
Peut être qu’il voit un prefab comme une extension, avec un moyen d’en avoir une liste/nuage de tags provenant d’un repo github.
(Les extensions actuelle sont tiré de ce repo)

D’ailleurs les extensions sont pas accessible offline, car la liste/nuage de tags est demandé à l’api de github à chaque ouverture de cette dit liste.
C’est pas jojo si les prefab c’est pareil, du moins certain de base devraient être inclus si les prefab sont choisis pour les boutons.

En tout cas un prefab ça peut être bien pour créer quelque chose de statique, car dès qu’on le bouge si les objets ne sont pas lié entre eux dans les événements (quelque chose qui doit etre fait par l’utilisateur manuellement) alors ils bougeront indépendamment les uns des autres.
D’où un autre problème, la nécessité de pouvoir parenté un objet à un autre dans un des panneaux de l’objet pour qu’il soit lié à un objet parent.

On pourrait permettre la création de boutons assez simples via quelques paramètres : forme (rectangle/carré/squircle ou rond/ovale), padding vertical/horizontal, couleur, et éventuellement quelques options déco (effet relief, ombrage ou autre…) et la taille serait ajustée automatiquement au texte. Ça pourrait être un comportement qui se fixerait sur l’objet texte du coup, je pense.