| semi-fractale : arbre aléatoire | |
|
+7glcraft red-error marty nicoulas Chlorodatafile onilink_ M@d_Doc 11 participants |
|
Auteur | Message |
---|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: semi-fractale : arbre aléatoire Jeu 1 Juil 2010 - 22:43 | |
| Bon, quitte à faire des trucs inutiles, je les partage. J'ai appelé ça de la semi-fractale, car ça reprend le principe de suite avec homothétie, mais sans réelle formule mathématique derrière. Bref, juste un petit truc fait en 10 minutes :p Voilà tout d'abord un aperçu, même si c'est facilement modifiable et/ou améliorable. - Spoiler:
-----------------CODE--------- script à appeler au début de la room : - Code:
-
/*
*/ //rapport longueur/largeur des branches global.length=4
//nbre de generations à 1 de largeur global.mgen=3
//variation d'angle global.mangle=80
Après, il faut faire un objet qui controle la creation d'arbre, en plaçant simplement une branche là où il faut commencer. L'arbre va simplement pousser car la branche ets grosse. Tant qu'une branche n'est pas fine, elle continue de pousser. Bref, faire un objet "controller" avec ça dans step : - Code:
-
with(instance_create(mouse_x,mouse_y,obj_branche)) { dir=90 width=40+random(15) }
Puis faire un objet obj_branche, comme suit : create : - Code:
-
alarm[0]=1
Alarm0 : - Code:
-
//x+lengthdir_x(width*global.length,dir),y+lengthdir_y(width*global.length,dir) if !variable_local_exists('gen') { gen=0 } else { gen+=1 } if gen=0 && width<=1 { gen=1 }
if gen<=global.mgen { _a=random(100) with(instance_create(x+lengthdir_x(width*global.length+4,dir),y+lengthdir_y(width*global.length+4,dir),obj_branche)) { dir=other.dir+random(global.mangle)-global.mangle/2 width=max(1,other.width*(other._a)/100) if other.gen!=0 { gen=other.gen } } with(instance_create(x+lengthdir_x(width*global.length+4,dir),y+lengthdir_y(width*global.length+4,dir),obj_branche)) { dir=other.dir+random(global.mangle)-global.mangle/2 width=max(1,other.width*(100-other._a)/100) if other.gen!=0 { gen=other.gen } }
}
Draw : - Code:
-
draw_set_color(width*255) draw_line_width(x,y,x+lengthdir_x(width*global.length+4,dir),y+lengthdir_y(width*global.length+4,dir),max(1,width))
Il suffit alors de mettre l'objet controller dans la room, d'appeller le premier script dans cette dernière, et de cliquer quelquepart! (prévoir une room assez grande et haute) _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Jeu 1 Juil 2010 - 22:50 | |
| ohohoh m@d, bienvenu au club pour les truc inutiles xD Sinon pas mal, bien qu'il y ai des problemes au niveau des couleurs, et surtout aux jointures =p |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: semi-fractale : arbre aléatoire Jeu 1 Juil 2010 - 22:52 | |
| ouais, j'ai pas travaillé les jointures, la flemme de dessiner des triangles :p
Pour les couleurs, j'ai vraiment fait ça en 2 secondes, et puis on a qu'à dire que c'est... euh... un style graphique :p _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 8:00 | |
| ouah ... c'est magnifique ! génial pour créer un fond pour un décor de jeu |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 10:42 | |
| Ahah ça peut être cool pour générer un monde aléatoire dans un jeu à chaque fois que le joueur débute une nouvelle partie Par contre, tu devrais vraiment rajouter les jointures et aussi mettre un exemple |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 10:47 | |
| le problème de l'exemple, c'est que je suis sous gm8, c'est pour ça que j'ai tout écrit à la place :p _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 16:22 | |
| je trouve vos idées extra,si j'étais pas aussi nase je compilerais tout ça dans un projet estampillé cbna! y a du potentiel a chaque page que je lis! bref continue et rien n'est inutile tant que ça fait rêver!
|
|
| |
Invité Invité
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 17:51 | |
| ça serait cool d'améliorer les jointures etc pour faire un générateur d'armre vraiment performant |
|
| |
Invité Invité
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 18:09 | |
| wow impressionant les algues rouges |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: semi-fractale : arbre aléatoire Ven 2 Juil 2010 - 21:49 | |
| J'aime bien. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: semi-fractale : arbre aléatoire Sam 3 Juil 2010 - 12:22 | |
| si ca derange personne, je vais essayer d'améliorer les jointures car avec des mayers jointures, ce serait encore plus magnifique que maintenant, surtout que la juste sans les jointures c'est deja joli, mais alors avec... |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: semi-fractale : arbre aléatoire Sam 3 Juil 2010 - 12:39 | |
| pour t'aider : les branches sont dessinées avec un draw_line_width. Les deux extrémités sont :
(x,y) et (x+lengthdir_x(width*global.length+4,dir) , y+lengthdir_y(width*global.length+4,dir),max(1,width)) _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: semi-fractale : arbre aléatoire Mer 14 Juil 2010 - 11:46 | |
| - robotic76 a écrit:
- ça serait cool d'améliorer les jointures etc pour faire un générateur d'armre vraiment performant
Je plussoie. Et il faudrait que JUSTE APRES le premier rectangle, il se forme plus de branche dans différentes directions pour que ton arbre ressemble moins à un truc droit. Sinon, BAST avait déjà fait un système déjà magnifique dans le genre. _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
Bast Administrateur
Messages : 20024 Localisation : Alsace
| Sujet: Re: semi-fractale : arbre aléatoire Mer 14 Juil 2010 - 20:18 | |
| - Topaze22 a écrit:
- Sinon, BAST avait déjà fait un système déjà magnifique dans le genre.
Non pas vraiment, je crois que je vois de quoi tu parles mais c'est un vieux truc que j'avais conçu avec GM5 à l'époque où je venais de débuter sous GM. Rien à voir avec les fractales de onilink et M@d_Doc. _________________ |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Ven 11 Mar 2011 - 22:23 | |
| salut un petit coup de main svp,j'ai fait un petit programme pour générer un "arbre" aléatoire évidement en d&d avec plusieurs objets et j'aimerai qu'il soit "compilé" en un seul objet pour avoir la possibilité de l'utiliser plusieurs foi dans la même room et je n'y arrive pas ! si une bonne âme passe par là le gmk: http://www.yoyogames.com/games/167274-genplantmerci |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Ven 11 Mar 2011 - 22:29 | |
| euh en d&d tu risque d'avoir du mal... surtout en un seul objet. Le problème c'est que pour les fractales, faut utiliser de la récursivité, donc faut au moins savoir taper un peu de code gml. Bref si jamais un peu de code te dérange pas demain je pourrais te faire un exemple. |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Ven 11 Mar 2011 - 23:47 | |
| merci onilink en fait je n'y comprend pas grand chose aux gml et fractale la j'utilise plusieurs objets que j'assemble pour faire un arbre différent à chaque lancement de room mais je suis ok pour un script car là d&d ne me permet pas de "multiplier" les arbres comme je veux! cela me permettra d'apprendre le gml! ps:est il possible de bien identifier les 4 éléments composant l'arbre dans ce script? |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Ven 11 Mar 2011 - 23:53 | |
| Tu veux que ton arbre soit composé de plusieurs objets ? En tout cas oui on peut identifié les éléments, mais c'est plus ou moins dur selon comment on procédé. |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Sam 12 Mar 2011 - 14:58 | |
| en fait les quatre éléments sont: feuilles,tronc,plante,et arbre qui est un assemblage du tout
pourquoi?car c'est plus facile de modifier ces éléments indépendaments afin de multiplier les formes aléatoires (par exemple je peux changer la forme des feuilles,la couleur du tronc,..)
as tu téléchargé mon gmk? car tu va vite comprendre ma cuisine et ce que j'aimerais en faire,c'est a dire un objet unique qui rassemble ces quatre objets en un seul ce qui me permettrais d'en afficher plusieurs dans la même room ce qui est impossible avec ma façon de procéder merçi
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Sam 12 Mar 2011 - 15:44 | |
| je vois, mais tout peut tenir en un seul objet. Je te code un exemple dans l'aprem. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Sam 12 Mar 2011 - 17:42 | |
| Voila un petit exemple bien commenté. http://www.host-a.net/u/onilink_/fractale_random.gm6Bien sur ce n'est qu'une base, mais si tu la comprend tu pourras faire de très beaux arbres. Si tu comprend pas dit le, je répondrais a tes questions. Et si tu veux un plus bel arbre je pourrais aussi le faire, mais ça te volerais la vedette lol |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Sam 12 Mar 2011 - 23:27 | |
| merci onilink superbe script! bon j'avoue il faut que je l'étudie pour bien comprendre mais j'ai compris l'idée directrice [img] [/img] petite question le script comporte 4 variables appelées argument qui sont identifiés dans le script même xx=argument1 ... mais l'argument 0 ou est il configuré car c'est inter_max ( comment le sait il? à la place d'un draw_line tu voyais quoi un sprite par exemple? |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Dim 13 Mar 2011 - 10:22 | |
| Ben en fait une fonction ça a des paramètres tu est d'accord ? Par exemple la fonction racine carré, elle a un paramètre que l'on noteras x. Ben quand tu ecrit un script sous GM, pour récupérer les paramètres il faut écrire argument0, argument1 , etc. argument0 récupèreras la première valeur en paramètre, argument1 le second, etc. Bon c'est pas super mais c'est gm...
Sinon je pensais mettre des primitives a la places des lignes, mais des sprites conviendraient aussi, faut juste que tu réussisse a déterminer le scaling que tu doit leur appliquer. |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Lun 14 Mar 2011 - 22:18 | |
| salut onilink sur le script je ne comprend pas une chose : quand le compteur parvient à zéro c'est a dire que le nombre de division de branches est complet if (argument0=0) return 0 signifie la fin du script et tout ce qui suit . le draw_line est en fin de script pourquoi l'arbre reste affiché?
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Lun 14 Mar 2011 - 22:25 | |
| Oui c'est bien pour terminer les appels récursifs. Si tout s'affiche c'est que ce sont les draw_line des autres itérations qui sont affichés, et pas pour la dernière (d'ailleurs a la dernière y a aucun calcul, c'est juste l'arret) |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Lun 14 Mar 2011 - 22:32 | |
| ok merci edit: salut onilink je suis toujours sur le script que je voulais adapter à mon idée mais il y a plusieurs point de détail que je ne maîtrise pas! est il possible de réaliser la même chose avec la fonction code et non en script,car là l'ordi fait plusieurs chose en même temps et je n'arrive pas à suivre,j'ai une toute petite approche de la programmation en basic où on utilise une instruction a la suite que l'on répète le cas échéant. la mon script redessine mon"arbre" constamment en changeant les angles,je n'arrive pas enregistrer les variables angles car il faut les déclarer à l'avance ! merçi |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: semi-fractale : arbre aléatoire Sam 19 Mar 2011 - 16:09 | |
| salut onilink bon je suis arrivé a ce que je cherchais! bon c'est pas optimum je ne comprend pas ces foutus script mais le résultat est correct! donc merci pour tes conseils [img] [/img] |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Sam 19 Mar 2011 - 16:21 | |
| ah ben le résultat est très joli. Ça te donne pas envie de te mettre vraiment au gml tout ça ? Tu t'imagine même pas le contrôle que tu auras comparé au d&d !
En tout cas si t'as des questions n'hésite pas a me mp :p |
|
| |
DeinDall Utilisateur confirmé: Rang ****
Messages : 858 Localisation : Quimper
| Sujet: Re: semi-fractale : arbre aléatoire Sam 19 Mar 2011 - 17:36 | |
| bon, allé : - Code:
-
draw_line_width(xx, yy, xend, yend, argument0) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: semi-fractale : arbre aléatoire Sam 19 Mar 2011 - 19:05 | |
| Reste a faire un ptit fonction draw_flower et c'est parfait :p Ahaha j'ai réussi a convertir pleins de personnes au fractales |
|
| |
Contenu sponsorisé
| Sujet: Re: semi-fractale : arbre aléatoire | |
| |
|
| |
| semi-fractale : arbre aléatoire | |
|