Messagerie


Création d'objet dynamique à la volée (et problème pour y accéder)

Wolkam
samedi 29 octobre 2016 à 22:02
Bonjour !

Bon je suis sur le problème épineux de la création dynamique d'ojets actif et j'hésite entre les plus et les moins. Je vous explique mon problème. J'ai souhaité au maximum limiter le nombre d'objet actif car d'une part ça fait ramer, et d'autre part si j'ai un bouton que je duplique, je n'ai besoin de le modifier le graphisme qu'à un seul endroit et je n'ai qu'une ligne de code pour un événement. Par contre le gros inconvénient c'est pour faire faire une chose à cet objet sans que tous les autres copies de l'objet soit impactée.
Donc j'ai une routine qui créé tout mon set d'objet, qui met dans chaque objet une variable avec un numéro identique et ensuite je crée le groupe d'objet suivant.

Mon problème c'est que dès que j'ai une action sur un bouton, ça me fait beaucoup de condition pour retrouver tous mes objets, et parfois, comme cela ne marche pas je dois ruser en faisant appel à un compteur qui relève le numéro du bouton cliqué puis en appelant des groupe de conditions.

Tout ce système fonctionne, presque tout le temps, mais j'ai parfois des bugs, des boutons qui s'active mal, des barre de vie de monstre qui baisses toute quand un seul mod est touché, des groupes de qualifier que je cache mais seul 5/6 des boutons disparaissent, etc..

C'est pas évident à débuggué vu qu'il n'y a qu'un seul objet dupliqué. Bref, j'hésite entre plusieurs solutions et vous seul pouvez m'aider car j'ai du mal a tout tester:
- option 1 : tout repasser en dur, sans création dynamique, ce qui devrait faire un truc comme 50*8 objets pour les pieges + une 50 d'autres objets actif soit environs 450 objets,en sois c'est pas un souci, mais quand je vais dupliquer les levels, si y a un bug ou un graphisme a corriger ca va être galère
- option 2 : j'avais penser au clic de la souris activer une zone et désigner tous les éléments par leur positions dans la zone xy, je ne sais pas si cela simplifierait la gestion mais ce serait plus simple sans doute a coder
- option 3: j'ai regardé un moment les Behaviors, ces ligne d'event dédié à un objet, j'avoue que c'est sortit à un moment ou je ne codait plus, je ne sais pas si vous utilisez ça, ça permettrait d'intercepter des actions sans avoir a savoir sur quel objet je suis, mais bon, je ne connais pas trop donc je ne suis pas sûr de savoir si ça marche comme cela
- option 4 : trouver une méthode pour désigner les objets autrement, j'ai vu qu'il y avait une option spread value aussi, je ne l'ai jamais utilisé et j'ai aussi vu que chaque objet avait une Fixed value, la aussi ce sont deux choses que je n'ai jamais eu l'occasion de tester.
- option 5 : me lancer enfin sur Unreal lol faudra bien que j'y aille un jour :)

Voilà, il y a d'autres solution surement, mon but étant bien sûr de trouver celle qui soit la plus fiable, tout en me permettant de coder et de modifier un seul objet pour éviter d'avoir a passer sur chaque copie d'objet dans chaque tableau pour corriger un graphisme par exemple. Je sais qu'ici il y a quelques pro du dev Fusion ^^

Pour plus d'info, dans mon jeu Dungeon Traps, j'ai les 8 emplacements de pièges que gère le joueur. Sur chaque spot, j'ai:
- un spot (l'emplacement lui même)
- une icone fonction du piege choisit
- un bouton
- le décors du piège
- le piège en lui même
- et parfois des jauges.

J'ai aussi
- 6 icones catégories
- 6 icones de pieges par catégories donc 36 icones
Mais pour limiter le nombre d'objet actifs créé il n'y a qu'un jeu d'icônes car elles ne sont jamais affiché en même temps, donc dès qu'on clique sur un bouton pour paramétrer un piège, je déplace les boutons catégories et piège sous le bouton de paramétrage, je les affiche  ça m'évite de créer autant de bouton que de spot.

j'ai mis deux captures d'écran en fichier joint mais il en veut pas, ni les images hébergé sur zupimage donc je met deux liens
https://drive.google.com/open?id=0BwgExOr6LArMSEMzR1ZoQm5ITWc
https://drive.google.com/open?id=0BwgExOr6LArMWjJBU2F6Q1JHNkU

Merci pour votre aide
Pit73
1055 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
samedi 29 octobre 2016 à 23:01
Hello
Je te conseille de faire un mfa epuré ici pour les tests, en isolant ta problematique ;) on pourra voir ce qui buggue comme ca ;)
En effet distribuer un valeur unique par objet est une solution lol ;) il y en a surement d autres ;) il y a des exemples qui trainent sur le forum ;)
Wolkam
samedi 29 octobre 2016 à 23:15
Merci Pit, je cherche sur le forum en ce moment, ici et chez clickteam, je vais voir a épurer le code aussi, je suis sur deux version en ce moment, une dynamique et une semi-dynamique pour comparer ce que cela engendre comme lourdeur de maintenance par la suite.
Srutinrun
lundi 13 novembre 2017 à 10:18
J'attendais ça depuis longtemps.
Kloug
1497 messages
Fusion 2.5
lundi 13 novembre 2017 à 10:50
Salut,

Ta problématique est classique, il suffit de se souvenir d'évidences.

1) La base d'un jeu vidéo >> La tuile.

2) L'élément de base d'un jeu vidéo >> Le moteur de déplacement.

3) I.A >> Solver >> Ligne comparative.

Sans aller jusqu'à mettre au point un niveau d'abstraction supplémentaire, il existe des trucs et astuces.

Pour ma part il y a le principe de la grille virtuelle, du layer composé et décomposé, etc...

Si tu avais un mfa à proposer avec ta problématique spécifique, on pourrait peut être te proposer une solution, pour le moment, le contexte reste vague, malgré des explications détaillées.

A+++

Edit:

Pour tes bugs, au pif, ton klik code est mise en forme avec des phases, des restrictions?

Un truc vite fait (game play sans bugs), avec des boutons pour souligner mon minimum d'expérience, si besoin.

http://comptoir-mmf.eu/Forum/index.php?topic=1276.msg9554
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 21 visiteurs au total

Derniers messages