Comment rendre random des éléments d'un jeu?
Salut à tous, J'ai besoin de votre aide!
Je veux savoir comment on peut rendre des éléments d'un jeu random,
par exemple: un visuel différent,une musique différente à chaque fois qu'un niveau commence.
j'ai un objet qui se nomme ''[img]<<GRAEMLIN_URL>>/rp.gif[/img] random pool'', je crois qu'il peut me procurer ce que je cherche, parcontre je ne sais pas comment il fonctionne. Si il y a une autre solution, faites-moi en part!
Re: Comment rendre random des éléments d'un jeu?
Alors, tu peux faire quelque chose de plus simple, tu nommes tes musiques comme ça : music1.ogg ; music2.ogg etc ...
Puis dans l'éditeur d'événement, tu programmes qu'à chaque début de scène, tu joues ta musique dans la calculette d'expression comme ceci : apppath$+"music"+str(random(nbdetitre))+ ".ogg"...
Voilà une idée pour avoir une musique lancée aléatoirement à chaque départ de scène ... tu peux décliné cette technique pour tes visuels avec un objet "Image Active" ...
Re: Comment rendre random des éléments d'un jeu?
oublie pas la graîne générateur a -1 (je sais pas si ca à une grosse incidence) mais j'ai remarque que quand c'était pas à -1 le random n'en était vraiment plus trop un.
Exemple : Graine générateur 0
Résultat du random après 10 lancement de scène : 8,16,5,2,9 toujours la même suite.
Avec la Graine générateur réglé sur - 1
Plus de soucis.
Qu'on me dise si je me trompe mais voilà j'essaye de contribuer [img]<<GRAEMLIN_URL>>/smile.gif[/img]
Re: Comment rendre random des éléments d'un jeu?
merci pour vos réponses, mais malheureusement, je ne les aies pas comprises.
''apppath$+"music"+str(random(nbdetitre) )''
je ne sais pas ce que ca signifie ni ou l'écrire..
j'aimerais bien comprendre.
sur la calculette? c'est quoi et c'est où?
y aurait-il moyen d'avoir un tutoriel ou bien une explication étape par étape pour y arriver? Ce serait formidable
Re: Comment rendre random des éléments d'un jeu?
D'accord, alors je reprends pas à pas :
Il faut que tu nommes tes fichiers musicaux de façon logique, admettons que ce sont 3 musiques au format OGG, exemple: music1.ogg, music2.ogg et music3.ogg
Ensuite, dans l'éditeur d'événement, tu ajoutes la condition "Début de scène" et tu ajoutes l'action "Echantillons sonores > Jouer un fichier échantillon sur un canal spécifique" dans la colonne "[img]<<GRAEMLIN_URL>>/sound.PNG[/img]", le calculateur d'expression s'ouvrira, et là tu entres ceci : <div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>apppath$+"music"+str(random(3))&qu ot;.ogg"</pre></div></div>", ce qui veut dire, qu'il lira un de tes 3 fichiers musicaux au hasard à la racine de ton jeu. et mets "1" pour le canal ...
Sauvegarde ton fichier, en veillant bien que tes musiques soient au même endroit du fichier .MFA à la racine de ton programme.
Fais des tests via la touche F8, tu constateras que ce sera jamais la même musique qui sera jouée ...
Re: Comment rendre random des éléments d'un jeu?
Puis pour rentrer un peu dans les détails pour que tu comprennes le pourquoi de cette méthode je vais essayer de t'expliquer théoriquement ce que Nico vient de te montrer (Le calculateur d'expression peut agir comme un interpréteur d'un language de programmation)
Exemple :
apppath$ = C'est une variable prédéfinie qui donne le chemin(Répertoire) de ton fichier .exe ou .mfa
+ = comme on est dans une chaine(string) dans le calculateur d'expression permet de continuer notre chemin vers ton fichier musical car si on s'arrêtait a juste apppath$ il essayera de lire un fichier sonore nommé (exemple : c:\monprogramme\) et c'est tout! ( Tu comprendras que ainsi il ne s'y retrouverait pas le programme!
"music" = comme Nico te l'explique c'est simplement le nom que tu donne à un fichier ca aurait pu être sound ou encore un autre nom folklorique c'est juste une chaine qui donne a l'heure actuelle le chemin suivant au calculateur d'expression : ( c:\monprogramme\music ) encore une fois là ceci c'est pas suffisant pour que ton programme s'y retrouve mais on s'en rapproche vient l'heure du random.
+str (random(3)) =
En gros il va coller un random (soit 1 , 2 ou 3 ) a la suite de ta chaine ca devient plus intéressant regarde ou l'on en est actuellement grace a ceci : exemple (c:\monprogramme\music1 ou music2 ou music3) a ce stade ca ne fonctionnera toujours par car il manque encore l'extension de ton fichier c'est à dire .ogg [img]<<GRAEMLIN_URL>>/smile.gif[/img] mais l'on à résolu le random [img]<<GRAEMLIN_URL>>/smile.gif[/img]
".ogg" =
encore une fois tu colles à ta chaine dans ton calculateur d'expression ceci et là ca devient beaucoup plus clair car si tes fichiers sonores se trouvent bien dans le même répertoire que ton application qu'ils se nomment bien music1.ogg music2.ogg ou music3.ogg ca fonctionnera car ta chaîne donne ceci maintenant (c:\monprogramme\music1.ogg) ou (c:\monprogramme\music2.ogg) ou encore (c:\monprogramme\music3.ogg)
Tu comprendras que là ton calculateur d'expression s'y retrouvera car il trouvera malgré le random à chaque coup ton fichier sonore [img]<<GRAEMLIN_URL>>/smile.gif[/img]
en gros on répète : apppath$+"music"+str(random(3))".og g"
Veut dire : (exemple) c:\monapplication\MUSIC1.ogg
ou c:\monapplication\MUSIC2.ogg
ou encore c:\monapplication\MUSIC3.ogg
Voilà :-)
Bonne chance à toi
Re: Comment rendre random des éléments d'un jeu?
Hé Hé super explication ^^
Re: Comment rendre random des éléments d'un jeu?
-
Un dossier image, musique, etc, permet de ne pas mélanger les ressources, de ne pas tout mettre avec le fichier.mfa ou fichier.exe.
Apppath$+"Img\"+Str$(value( "Compteur" ))+".png"
Apppath$ > Chemin vers l’application où qu’elle se trouve sur le disque dur.
Img > Nom du dossier (ne pas oublier \ sinon essayez sans pour voir).
Valeur du compteur.png > Image 1.png par exemple dans le dossier Img.
Une petite mise en pratique avec random.
http://www.mediafire.com/?x5tyjjonnqe
Re: Comment rendre random des éléments d'un jeu?
Oui mais là SpringUp comme tu le déclare au dessus à moins que je me trompe
Apppath$+"Img\"+Str$(value( "Compteur" ))+".png"
permets de faire ceci :
c:\chemindemonappli\Img\1.png
c:\chemindemonappli\Img\2.png
après si il veut peaufiner son code, à lui d'ajouter un nom de fichier en plus du genre
Apppath$+"Img\background"+Str$(value( "Compteur" ))+".png"
Ce qui en théorie donnerait alors
c:\chemindemonappli\Img\background1.png
c:\chemindemonappli\Img\background2.png
(évidemment il ne doit pas oublier de renommer ses fichiers images également) :-)
Gigi
Re: Comment rendre random des éléments d'un jeu?
Huhu, Merci pour ce mini "tuto" même si je ne suis pas l'auteur du topic et de la question. Moi aussi j'ai appris des petites choses importante.