Objet de par son nom

Bonjour à tous,

Je profite d’avoir le temps aujourd’hui pour poser une question que j’ai sous le coude depuis un petit moment déjà. Je voudrais savoir à quoi sert l’action “créer un objet de par son nom”. Je vois qu’il faut entrer un texte : ce n’est pas un sprite animé ?

Comme quasiment tout le temps, je n’ai rien trouvé dans l’aide qui explique quoi que ce soit à ce sujet. Alors, dans le doute, je ne me sers toujours que de l’action “créer un objet” tout court… En fait, j’ai testé cette fonctionnalité dans une scène vide, il faut utiliser le nom d’un objet qui existe déjà dans l’éditeur d’objet ? Autrement, il ne se passe rien… Alors je ne comprends pas trop l’intérêt, par rapport à “créer un objet”…

4ian, ce n’est pas la première fois que je signale sur le forum que je trouve l’aide insuffisamment descriptive. J’estime qu’une notion comme celle-ci n’est pas complètement intuitive, peut légitimement prêter à confusion et être sujette à plusieurs interprétations, et qu’elle devrait donc être expliquée un minimum. Le pire, c’est que si l’on tente une recherche par mots-clés sur le forum (“objet de par son nom”), on n’y arrive même pas : l’ensemble de ces mots sont ignorés par le moteur de recherche du forum car considérés comme trop communs…

Sans explication, ces fonctionnalités finissent par n’être que l’apanage de quelques initiés. A quoi sert-il de créer de nouvelles fonctionnalités si elles ne sont pas expliquées ?

Ben, l’interêt est que l’on peut mettre une expression pour désigner l’objet à créer (par exemple une variable), pour le reste, c’est la même chose que “Créer un objet”

Je sais que le moteur de recherche des forums phpBB est pas terrible, mais je peux pas y faire grand chose. :neutral_face:

Au lieu de choisir directement un objet, cette action va évaluer le texte que tu lui passe, et va utiliser le résultat pour créer l’objet ayant ce nom. Par exemple, imaginons que tu ais deux objet “MonObjet0” et “MonObjet1”, tu peux utiliser cette action comme ceci : Créer l’objet ayant le nom “MonObjet”+Random(1) à la position…
Cette action crééra un des deux objets au hasard.

Maintenant, ce genre de fonctionnalité où le nom de l’objet peut être choisi “dynamiquement” est exceptionnel. Je l’ai ajouté car ça peut être pratique notamment lorsque on charge un niveau enregistré et qu’on recréé des objets à partir de leur nom. Mais je dis bien exceptionnel, ( J’ai par exemple Crone123 qui m’a demandé bien 4 ou 5 fois d’ajouter cette fonctionnalité à toutes les actions et conditions ) car le fait de pouvoir choisir un objet dynamiquement en évaluant un texte qui va représenter le nom a pour inconvénient de :

-Réduire les performances, il faut évaluer un texte pour obtenir l’objet au lieu d’avoir directement l’objet choisi de disponible.
-Risquer d’introduire des bugs et des failles. Si le joueur trafique par exemple une variable utilisée pour créer un objet, il va pouvoir créer n’importe quel objet.
-C’est souvent le signe d’une mauvaise conception du jeu, d’avoir besoin de retrouver dynamiquement le nom d’un objet ( Les groupes sont là si il y a besoin de généraliser quelque chose ).
-Et ça pourrait mener à du grand n’importe quoi.

La seule action qui possède son “double” prenant un texte à la place d’un objet directement est l’action Créer un objet, car c’est la seule où le gain de temps est justifiable ( Comme je l’ai dit, dans le cas d’évènements qui rechargent un niveau, l’action permet de recréer facilement les objets à partir de leur nom ).

Oui, c’est vrai. Mais dans ce cas, je préfère modifier directement la description de l’action. En effet les actions sont nombreuses, et au départ je les avait toutes intégrées dans le fichier d’aide. Mais bien souvent, leur page n’était pas mise à jour et ne faisait que répéter strictement la même chose que ce qu’il y avait dans l’éditeur.
Je dis pas que l’aide est exhaustive mais disons qu’elle est plus là pour expliquer les concepts de base. Et les actions/conditions/expressions sont ensuite “sensées” être utilisable facilement, grâce à leur nom, leur groupe, leur description et la description des paramètres. Si ce n’est pas le cas, les extensions qui les possèdent sont sensées fournir l’aide appropriée. Pour les extensions officielles, soit la totalité de ce qu’on trouve actuellement dans Game Develop, cette aide est disponible dans le fichier d’aide, rubrique “Extensions et fonctionnalités intégrées”.

Merci 4ian pour ces explications. Je retiens donc en particulier que c’est une fonction exceptionnelle, dont on ne devrait pas avoir besoin de se servir… La réduction de performance qu’elle occasionne se justifie essentiellement à l’occasion du chargement d’un niveau (Victor - merci à toi aussi de m’avoir répondu - il existe un autre moyen de générer un objet à partir d’une variable, simplement en testant la valeur d’une variable et en déterminant par un volet de conditions pour quelle valeur celle-ci doit générer quel objet).

Cela m’étonnait depuis quelque temps, parce que je ne voyais pas l’intérêt de créer un objet (qui existe déjà dans l’éditeur d’objet) en passant par un autre processus que la création d’objet…

Pour en revenir aux fichiers d’aide, je me souviens effectivement de l’ancien descriptif des actions et des conditions, qui, comme tu le dis, ne faisaient que répéter la description de l’action. Je ne pense pas qu’il soit nécessaire de les refaire comme à l’époque. Je pense juste qu’il n’y a que quelques conditions et quelques actions qu’il faudrait faire l’effort de définir. Pas besoin par exemple d’expliquer l’action “créer un objet” : il y a des cases qui demandent à ce que l’on renseigne le nom de l’objet, sa position X, sa position Y, et sur quel calque on veut le créer. Là, pas besoin d’explication, on comprend tout de suite ce qu’il faut faire (il y a des rubriques d’aide pour expliquer ce qu’il faut savoir au sujet de l’éditeur d’objet et de leur positionnement sur la scène). En revanche, quand une personne découvre le logiciel, tombe sur un terme comme “créer un objet de par son nom”, et voit une case où elle doit inscrire un texte “représentant le nom de l’objet à créer”, ce n’est pas sûr qu’elle comprenne aussi bien…

De même pour quelques autres fonctions, comme l’échelle du temps : tu pourrais ajouter une ligne ou deux pour expliquer qu’elle permet d’ajouter des effets de ralenti ou d’accélération temporaires, qu’elle doit être utilisée avec précaution parce qu’elle modifie la vitesse de l’écoulement du temps et influence tous les chronomètres du jeu. Ce genre de petits commentaires peuvent grandement améliorer la compréhension du logiciel et éviter que des personnes viennent encombrer le forum de questions semi-élémentaires récurrentes, alors que quelques phrases en plus dans l’aide auraient pu suffir pour les éclairer…