AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 semi-fractale : arbre aléatoire

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: semi-fractale : arbre aléatoire   Jeu 1 Juil 2010 - 20: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
Revenir en haut Aller en bas
http://www.lecbna.org
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Jeu 1 Juil 2010 - 20: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

_________________
                 
Revenir en haut Aller en bas
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: semi-fractale : arbre aléatoire   Jeu 1 Juil 2010 - 20: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
Revenir en haut Aller en bas
http://www.lecbna.org
Chlorodatafile
Utilisateur confirmé: Rang *****
avatar

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 6:00

ouah ... c'est magnifique ! génial pour créer un fond pour un décor de jeu coeur
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
nicoulas
*Excellent utilisateur*
avatar

Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 8: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 Very Happy

Par contre, tu devrais vraiment rajouter les jointures et aussi mettre un exemple
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 8: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
Revenir en haut Aller en bas
http://www.lecbna.org
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 14: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!
Revenir en haut Aller en bas
robotic76
*Excellent utilisateur*
avatar

Messages : 4841
Localisation : Le Havre, Normandie
Projet Actuel : Binär

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 15:51

ça serait cool d'améliorer les jointures etc pour faire un générateur d'armre vraiment performant

_________________
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 16:09

wow impressionant les algues rouges
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
avatar

Messages : 1015
Projet Actuel :

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 2 Juil 2010 - 19:49

coeur J'aime bien.
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 3 Juil 2010 - 10: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...
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 3 Juil 2010 - 10: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
Revenir en haut Aller en bas
http://www.lecbna.org
Topaze22
*Excellent utilisateur*
avatar

Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

MessageSujet: Re: semi-fractale : arbre aléatoire   Mer 14 Juil 2010 - 9: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.
Revenir en haut Aller en bas
Bast
Administrateur
avatar

Messages : 20008
Localisation : Alsace

MessageSujet: Re: semi-fractale : arbre aléatoire   Mer 14 Juil 2010 - 18: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.

_________________
Revenir en haut Aller en bas
http://www.lecbna.org/
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 11 Mar 2011 - 21: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-genplant

merci
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 11 Mar 2011 - 21: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.

_________________
                 
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 11 Mar 2011 - 22: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! happy1

ps:est il possible de bien identifier les 4 éléments composant l'arbre dans ce script?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Ven 11 Mar 2011 - 22: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é.

_________________
                 
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 12 Mar 2011 - 13: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

Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 12 Mar 2011 - 14:44

je vois, mais tout peut tenir en un seul objet.
Je te code un exemple dans l'aprem.

_________________
                 
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 12 Mar 2011 - 16:42

Voila un petit exemple bien commenté.

http://www.host-a.net/u/onilink_/fractale_random.gm6


Bien 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

_________________
                 
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 12 Mar 2011 - 22: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
clinoeuil

[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 (Cool comment le sait il?

à la place d'un draw_line tu voyais quoi un sprite par exemple?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Dim 13 Mar 2011 - 9: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.

_________________
                 
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Lun 14 Mar 2011 - 21: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é?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Lun 14 Mar 2011 - 21: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)

_________________
                 
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Lun 14 Mar 2011 - 21:32

ok merci happy1
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





Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
avatar

Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 19 Mar 2011 - 15: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 clinoeuil
[img][/img]
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 19 Mar 2011 - 15: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

_________________
                 
Revenir en haut Aller en bas
DeinDall
Utilisateur confirmé: Rang ****
avatar

Messages : 858
Localisation : ~Quimper
Projet Actuel : Un jeu où tu joues.

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 19 Mar 2011 - 16:36

bon, allé :

Code:
draw_line_width(xx, yy, xend, yend, argument0)
heheh

_________________
.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8926
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: semi-fractale : arbre aléatoire   Sam 19 Mar 2011 - 18: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 Yum!

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: semi-fractale : arbre aléatoire   

Revenir en haut Aller en bas
 
semi-fractale : arbre aléatoire
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Semi Marathon 2010 de la Légion Etrangère à Castelnaudary
» [résolu]Arbre monopage
» Comment enregistrer/exporter mon arbre en format PDF?
» Eau d'arbre à thé (Tea Tree Water)
» Fête de l'arbre et du cidre. St Cyr (61).

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: