Messagerie


Aide à la différenciation des Actifs Dupliqués.

Djipi
jeudi 1 octobre 2015 à 17:19
Salut salut

Dite moi je reviens vers vous car je me heurte à un problème je vous explique :

J'ai une lumiere (ou tout autre évènement ) qui quand je passe dans son capteur (le cercle bleu) s'allume. Pour le moment celà fonctionne mais quand je duplique ça ne fonctionne plus. Toutes les lumière s'allume ensemble.

Pouvez vous m'aider? voila un exemple pour vous.

https://mega.nz/#!5tI11LxI!lLMfAI6uqysR73o09qx_8iE0wYpds_kms3seTutCF9w

Je pense qu'il peut s'agir de la fonction "répartir une valeur" mais je ne sais pas encore m'en servir. Si ce n'est pas celàn qu'est ce qui ne va pas ?
Xsoul
jeudi 1 octobre 2015 à 17:55
Hello

T'as juste à mettre l'extension "foreach" et quand tu as ton perso qui rentre dans une lumière  tu lances une boucle pour chaque lumiere et si dans la boucle pour chaque lumière le joueur est dans la lumière elle s'allume ^^

Tu peux distribuer une ID à chacune de tes lumières (en début de game répartir valeur) et si le joueur est au dessus d'une lumière ça stocke son ID dans une variable et si c'est cette variable = ID de lumière ça l'allume.

Bonne chance =)
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 1 octobre 2015 à 18:00
utilise pas foreach
https://www.dropbox.com/s/lllmssh6c7atgrq/Application%201.mfa?dl=0
MMF gère ça en natif maintenant très très facilement "pour chaque boucle d'objet"
regarde la scène 2

Comme dit Xsoul lance en début de scène une boucle pour chaques objets qui vont créer le cercle bleu, puis dans une variable A du cercle bleu tu stock la référence du carré rouge referent.
Aprés ne fais pas actif par dessus cercle bleu mais plutôt actif en collision avec cercle bleu .
autre points pour l'optimisation:
Que ce soit foreach ou autre choses les boucles font ramées ! utilise les si possible que en début de scène et le moins possible en continue !
enferme t'es boucles dans un groupe que tu ouvre juste avant de lancer la boucle et ferme le groupe a la fin de la boucle, quand tu lance une boucle fusion regarde toutes les boucles de ton code et compare SAUF celles enferme dans un groupe fermé ;) ) (je les pas fais dans ton exemple )
Modifié le jeudi 1 octobre 2015 à 18:15 par graboide
Xsoul
jeudi 1 octobre 2015 à 18:23
Genial je connaissais pas, merci Graboide
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 1 octobre 2015 à 18:30
Oui ça a changer ma vie ce truc :).
J'ai encore plus rapide comme systeme de bouclage  ;D, j'avais fais un article mais personnes ne s'y intéresser mais on peu boucler depuis toujours de manière très optimisé grâce au animations bouclées !
suffit de mettre l'anime d'un objet avec une image en boucle vitesse 100, après tu fais la condition l'anime bidule de objet truc et terminé = ton action ca marchera que sur l'objet en question (ou sur un référent qui aura stocké sa variable A avec l'identifiant de l'objet bouclé en anime) et pas les autres dupliqué ;), fonctionne partout depuis tgf !  :) ralentit t'as boucle d'anime et ça sera encore plus optimisé mais moins fluide ;), plus rapide que foreach mais j'ai pas comparer avec l'option en natif de fusion, à l'époque le module android/ios ramé très très vite ^^, maintenant c'est plus le cas
Modifié le jeudi 1 octobre 2015 à 18:32 par graboide
Djipi
jeudi 1 octobre 2015 à 18:51
MErci beaucoup Graboide pour cet exemple.

Je comprend pas tout ce qui se passe (surtout comment tu as fait pour faire une valeur fixe sur la variable A)

De plus quand le perso touche le cercle, l'état de la valeur A du cercle Passe à 1 , comment cela se fait que dans la variable A rouge on a mis Fixed (donc une valeur fixe) et que A bleu qui est égal à 1 (donc fixe) fonctionne pour chaque objet?

Le mot fixed signifie quoi? Je comprend pas trop là
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 1 octobre 2015 à 19:14
chaque objet a un numéro de serie qui lui est propre en gros "fixed value " c'est son identifiant unique
En début de scène j'ai lancé une boucle comme ca
dans comptage > pour chaques objets
cette boucle ce lance immédiatement ! et elle va scanné chaques objets en question ( dans notre cas on lance la boucle pour les objet carrée rouge)
elle va donc bouclé 4 fois car 4 objet carré rouge
ensuite on fais
pour chaque boucle "création" de l'objet carré rouge (j'ai nommé la boucle "création" dans l'exemple) =  créer son capteur cercle bleu
je détail:
on a lancé la boucle qui scan tous les objets carré rouge
a chaque boucle un seul carré rouge sera concerné puis mis de coté pour passer au suivant etc ...
pendant cette boucle on va créer un objet détecteur le cercle bleu .
maintenant toujours dans la même boucle on ajoute comme action (c'est la qu'il faut t'accroché ^^) fixé variable alterable A du cercle bleu a la valeur fixe de l'objet bouclé (le carré rouge scanné) , en faisant ca tu créer des détecteur qui stock la valeur fixe du carré rouge superposé avec eux.
a partir de la rien de plus simple tu test la >>collision << pas la superposition la différence et que la superposition va prendre ne compte tous les objets ! et prendra le dernier créer ;/, alors que la collision test que es objets en collision et rien d'autre.
a partir de la tu fais donc :
CONDITION
>actif en collision avec cercle bleu ET valeur fixe du carré rouge == valeur A du cercle bleu<
la fusion sais de qu'elle objet on parle ... l'objet en collision cercle bleu pas un autre celui LA :) il passe a la seconde condition et la il cherche le carrer rouge qui a sa valeur fixe égale a la variable A de cercle bleu , grâce a ça il trouve le carré rouge correspondant et tu as plus qu'a changer ça variable .



graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 1 octobre 2015 à 19:20
https://www.dropbox.com/s/yp5897u9nbzkfe8/autre.mfa?dl=0
Si tu es allergique au boucles voila la même chose sans boucle MAIS car il y a un mais ^^
si tu met t'es carrer rouge trop proche il y aura bug ;) plusieurs s’allumeront en même temps , si ils sont éloigné cette exemple et mieux ;)
regarde scène 3 :)
on peu souvent ce passer de boucles ;) et c'est parfois mieux dans ce cas la je l'aurai pas fais
Modifié le jeudi 1 octobre 2015 à 19:26 par graboide
Djipi
vendredi 2 octobre 2015 à 06:52
J'ai absolument tout compris Graboide merci beaucoup. Je pense que la méthode des boucles peut s'appliquer à beaucoup de chose que j'ai faite pour "allégé" mon code ou l'optimiser^^

Par contre j'ai un soucis , regarde mon exemple :

https://mega.nz/#!8gwFnYiC!_FBB6WRhvujxbGYmrnzF7MUY-9dGyS9xnx2pqhjvvfo

En scene 3 , J'ai voulu mettre une ombre pour chaque lampe allumé mais cela ne marche pas , je n'arrive pas a attribuer une ombre par actif rouge et le mettre en marche seulement pour lui.
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
vendredi 2 octobre 2015 à 10:03
Je ne peu regarder tout de suite car je suis au travaille ;).
Je regarde en rentrant peu être d ici la quelqu un t aura déjà répondu :)
Djipi
vendredi 2 octobre 2015 à 10:49
Merci beaucoup graboide. J'attendrais^^

J'ai fait un nouveau test qui à l'air de fonctionner mais si je met un mouvement bah parfois ça marche pas , ou l'ombre d'un objet qui n'est pas active , quand un objet en mouvement passe dessus alors il se met tout seul en marche en prenant au passage son ombre.

Scene 3 :

https://mega.nz/#!d0hUVTbR!Xxqk-Vs-cbExEc5iGFK2rOjTZxX8bEwM4gh4WTqpGo4
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
vendredi 2 octobre 2015 à 16:07
Hello,
Je ne suis pas sur d'avoir bien compris la problématique et surtout ton mode de programmation avec des morceaux de programmes cachés dans les comportements est très pénible pour comprendre ce que tu fais. Je te suggère d'utiliser l'éditeur d'événement pour la programmation, ça évite de jouer à cache cache avec les événements...
On en avait déjà parlé ici : http://comptoir-mmf.eu/Forum/index.php?topic=1219.msg8893#msg8893

Voici une proposition de stratégie de programmation pour ton souci.
https://www.dropbox.com/s/c0n3why1uilbunl/Individuation.mfa?dl=0
+
Patrice
Modifié le vendredi 2 octobre 2015 à 16:19 par Patrice
Djipi
vendredi 2 octobre 2015 à 16:26
Merci patrice . Ta soluce fonctionne parfaitement effectivement mais alors je ne comprend rien ...
Une seul ligne pour tout gérer c'est fort mais cela ne règle pas du tout mon problème que si il y a un mouvement sur les actifs et que si sur chaque actif je met une ombre dessous, alors quand l'actif bouge l'ombre bouge aussi sans pour autant disparaitre quand elle heurteun autre évènement nin activé encore.

Regarde ma scene 3 tu verra le problème (même si c'est pénible à lire^^)

Pour ce qui est des comportement dans les actifs , je préfère car quand il y a beaucoup beaucoup d'actif dans une seul scène bah si je met tout en global ça va être vite inbuvable. J'avais en plus lu quelque part qu'il valait mieux que le global soit le moins rempli possible.

A moins qu'il y est une solution pour rendre le tout plus digeste et surtout avec des milliers de ligne. Ce que je met dans chaque évènement me permet de savoir quelle objet je modifie sans pour autant touché au reste du code.Je trouve cela plus simple. A moins que je ne me trompe
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
vendredi 2 octobre 2015 à 16:42
Je suis désolé, je ne comprend rien ni à ton problème ni à ta programmation dispersée. Je pense que tu confonds les événements globaux à toute l'application et l'éditeur d'événement pour ta scène.
Djipi
vendredi 2 octobre 2015 à 16:47
Non non je ne confond pas du tout^^

Les evènement globaux a toute l'application se situ dans l'éditeur d'évènement en haut sur la ligne du titre de ton projet.

L'éditeur d'évènement pour ma scène c'est celui qui est propre à chaque map.
ça je comprend bien :-) Et je connais bien évidemment la différence.

Par contre, comme je t'ai expliqué , si y'a plein d'évènement indépendant dans la map (Porte et mécanisme, objets divers, ennemi etc....) bah l'éditeur va devenir vite inbuvable non?
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
vendredi 2 octobre 2015 à 16:47
Les groupes sont là pour ça
Djipi
vendredi 2 octobre 2015 à 16:51
ok alors tu pense que je doit plus utiliser l'éditeur sur la map et le global pour mes actions global?
De plus il y'a en haut toutes la liste des actifs , je sais que l'on peut faire des dossier mais après c'es ttoujours lisible?
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
vendredi 2 octobre 2015 à 16:57
Tu fais comme tu veux... mais c'est pénible de jouer à cache cache avec un code pour essayer de te venir en aide...
Ceci dit je n'ai toujours pas compris ce que tu veux faire...
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
vendredi 2 octobre 2015 à 18:00
j'ai pas compris non plus ce que tu veut faire :(.
Pour les comportements perso j'utilise que ça, les groupes c'est bien mais c'est vite le bordel arriver a 50 groupes, les comportements tu peu les copier coller sur autre objet et ça marche et plus fort tu met l'objet en global et hop ça s'applique a toute l'application, autre avantage si l'objet et pas dans la scene comme c'est souvent le cas dans le jeu d'aventure ben il y a pas le code ça optimise un peu l'appli ! par contre si tu partage ton appli c'est le drame ;).

EDIT: en regardant ton code c'est vrai que c'est trés dispersé ! rejoint un groupes d'objets lié entre eux dans le même comportements car on ce perd vite et c'est vraiment compliquer a décrypter

Modifié le vendredi 2 octobre 2015 à 18:16 par graboide
graboide
414 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5
vendredi 2 octobre 2015 à 18:22
Voila,
Alors j'ai pas compris exactement ce que tu voulais faire, j'ai fais que corriger les bugs avec une boucle en continue
https://www.dropbox.com/s/4q7cpb5re4xugtr/exemple%202.mfa?dl=0
j'ai viré ton comportement des ombres ^^, faut pas abuser des comportements non plus :), regroupe t'es objets ;) .
Tu m'as fais deux boucles différentes sur le même objet en début de scène pour créer deux objets différents alors que tu peu tout mettre sur la même boucle
j’espère que je t'es aidé car j'ai rien compris a la base ^^
Modifié le vendredi 2 octobre 2015 à 18:25 par graboide
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 27 visiteurs au total

Derniers messages