Bonjour à tous !
Besoin d'aide s'il vous plait.
J'ai trouvé comment faire apparaitre par le biais d'un bang un [circle] avec un X et Y aléatoire, un code RGB aléatoire et un diamètre aléatoire. Ce que je voudrais maintenant, c'est faire en sorte qu'à chaque bang, un nouveau cercle apparait sans faire disparaitre le précédent...
Le newbie que je suis s'est entêté à copier-coller 60 fois le même montage pour avoir 60 cercles différents déclenchés par un [counter 1 60] suivi d'un [sel 1 2 3 4 5 6 ...... 25 26 27 28....... 57 58 59 60]
Mais vous l'aurez deviné, ma box se retrouve un peu petite pour afficher les 60 outlets correspondants à ces 60 arguments.
Donc du coup, j'imaginais pouvoir contourner le problème en "archivant" (à chaque bang) les infos aléatoires de chaque cercles provoquées par le bang et de "stocker" en quelque sorte 60 lots d'infos correspondant à 60 cercles, créés un par un, ) chaque bang. Mais comment se fait-ce ???
Merci pour votre aide.
Hors ligne
Salut, et bienvenue ici !
Tu devrais jeter un oeil à l'aide de PD : Gem/examples/13.recursion.
Je t'ai mis un autre exemple en pièce jointe, à partir duquel tu peux broder.
Hors ligne
Merci de ta gentillesse.
C'est ça. Sauf que tu utilises une méthode complètement différente de ce que j'avais déjà construit.
Mais ton idée est meilleure, je pense.
Ce qu'il me manque dans ton patch, c'est de rendre aléatoire les X et Y de [translate]. Ici, les X et Y sont prédéfinis dans un objet [table] alors que moi je voudrais qu'ils soient ramdomisé si je puis dire (suivant mes limites).
J'ai essayé de remplacer tabread par random... mais c'est pas la bonne solution.
Ce que je recherche, c'est faire apparaitre chaque nouveau disque avec un XY aléatoire.
Et puis la couleur et le diamètre, aussi (mais ça je peux trouver à partir du moment où j'ai trouvé le truc).
Hors ligne
Voici ma solution en respectant ta méthode...
C'est du patchage dynamique...
À chaque bang, le patch crée une abstraction dans le sous-patch Armoire et active le loadbang qui s'y trouve.
Bon courage.
Hors ligne
Pour aléatoriser les positions, il te suffit de parcourir chaque table et d'inscrire une valeur aléatoire à chaque index.
À toi de faire ton choix sur la méthode à utiliser... J'apprécie la mienne parce qu'elle permet d'accéder facilement aux coordonnées de n'importe quel disque. C'est également très visuel dans le patch.
Celle d'Olivier est cool aussi
Hors ligne
@Olivier : Merci. Superbe, simple, efficace. Bravo.
1/Si tu peux juste me dire ce que fait l'objet "once" ?
2/C'est bizarre, lorsque je lance gemwin, il y a déjà des disques en place.
3/Comme mes disques ont des couleurs différentes, j'ai pu m'apercevoir que les nouveaux disques apparaissent en arrière-plan des anciens disques. Ce qui fait qu'au bout d'un moment, ton écran est surchargé de disque et tu ne vois plus apparaitre de nouveaux disques.
Comment faire pour que les nouveaux disques apparaissent au premier plan ?
@Dwan : Merci aussi. Vraiment super ton patch, là aussi très simple et efficace.
Tu dis qu'il suffit de parcourir chaque table et d'inscrire une valeur aléatoire à chaque index.
Je vois comment ouvrir la "list" des tableaux mais je ne sais pas encore comment et où inscrire une valeur aléatoire. Pourrais-tu m'expliquer s'il te plait ?
Whaaaa c'est génial j'apprends des tas de trucs. J'espère les transmettre un jour à d'autres gens, grâce à vous !
Dernière modification par tristan2b (2014-06-13 10:50:28)
Hors ligne
1) Il ne laisse passer l'info qu'une fois. Ce qui évite qu'il retire un nombre aléatoire à chaque fois que l'on envoir [loadbang( à [pd Armoire]
2) Ce n'est pas vraiment bizarre... c'est juste que j'ai oublié de dégagé toutes les abstraction [MonCercle] dans [pd Armoire] avant de sauvegarder pour te l'envoyer...
Désolé...
Si tu supprimes toutes les abstractions, tous les cercles vont disparaître. (Les abstractions se placent les unes par dessus les autres).
Si tu envoies [clear( à [pd Amoire] cela fera la même chose.
3) Tu peux ajouter un argument à [MonCercle] que tu passes au [gemhead] avec un $1, et incrémenter cet argument au moment de la création de [MonCercle].
Bon courage.
Hors ligne
1/Oui, tu veux dire qu'il y a un doublon avec le [loadbang( dans le patch principal et le [loadbang( dans l'abstraction [MonCercle]. Et [Once] fait en sorte de ne prendre qu'une fois un [loadbang(.... C'est bien ça ?
Parcequ'en fait tu as besoin d'un [loadbang( pour envoyer l'info de création de [MonCercle] et un autre [loadbang( dans [MonCercle] pour créer un cercle. Et il ne faut pas de doublon, si j'ai bien compris.
2/Mais bien sûr ! Evidemment ! Vive la France !
3/C'est quelque chose que je ne sais pas encore faire mais qui me turlupine depuis un moment. Tous les tutos que j'ai trouvé au sujet de l'incrémentation de variables $n dans le nom des abstractions sont encore flous pour moi. Peut être as-tu un tuto ou une bonne crèmerie pour me renseigner là dessus ? Tout ce que je trouve est encore trop compliqué à comprendre pour moi. Je cherche un tuto archi simplifié là dessus.
Hey, les mecs, vous m'épatez, franchement... Merci !
Hors ligne
tristan2b a écrit:
@Dwan : Merci aussi. Vraiment super ton patch, là aussi très simple et efficace.
Tu dis qu'il suffit de parcourir chaque table et d'inscrire une valeur aléatoire à chaque index.
Je vois comment ouvrir la "list" des tableaux mais je ne sais pas encore comment et où inscrire une valeur aléatoire. Pourrais-tu m'expliquer s'il te plait ?
Il faut travailler avec l'objet [tabwrite].
Hors ligne
Merci Dwan. C'est très clair maintenant.
Hors ligne
1) La boite [loadbang] crache un bang à l'ouverture du patch. Or quand tu crées une abstraction dynamiquement, l'ouverture du patch est déjà passé... et le [loadbang] ne fait rien. Donc, il faut envoyer un message "loadbang" aux abstraction pour y remédier. Or, dans ton cas, tu souhaites uniquement stimuler la dernière abstraction (sinon chaque cercle chopperait aléatoirement une nouvelle position). D'où la boite [once] qui bloque tous les bangs qui suivront le premier.
3) Voici le truc :
Aux plaisirs...
Hors ligne
Bravo !
Me voilà comblé d'infos et de conseils !
Tu l'auras compris, je me suis inspiré de ton patch Rondanlo pour réaliser une première idée.
Je suis guitariste et je désire créer des intéractions entre sons improvisés acoustiquement et visuels.
Merci pour toutes ces infos, maintenant vous m'avez sur le dos à vie ! (je plaisante évidemment).
Hors ligne
Pages: 1