Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Connexion avec identifiant, mot de passe et durée de la session

+-Merci d'utiliser le forum pour les demandes d'aides sur fusion.

14 septembre 2018 à 08:44:35 ValLoche23 dit: L'antivirus qui deviens blasée ! xD
14 septembre 2018 à 08:11:40 Seyjin dit: Haha, à force de faire un scan de chaque nouvel exe d’am Monday Zombies, mon antivirus à décidé de le mettre dans la liste des exceptions 😄
13 septembre 2018 à 13:46:26 ValLoche23 dit: Oh sympaaa ! :D
12 septembre 2018 à 18:30:12 Seyjin dit: Ça avance bien 👍
12 septembre 2018 à 18:06:34 Xenon3K dit: Voila j'ai optimisé pas mal: http://ovigne-loic.fr/SuperMarioRetro/ j'ai afiné les mouvements des ennemis (maintenant ils on une hitbox et ils "débordent" d'un pixel dans le décors comme dans l'original)
12 septembre 2018 à 17:40:40 Monos dit: lol.
12 septembre 2018 à 11:42:55 Xenon3K dit: Non mais ça fait plaisir :) En plus tout le monde est d'accord !
12 septembre 2018 à 11:29:20 Pit73 dit: Oui bon elle etait pourrite ma phrase ;)
12 septembre 2018 à 10:55:24 ValLoche23 dit: Pauvre Pit hahaha
12 septembre 2018 à 09:52:28 Patrice dit: Hello xenon il est complexe ton mario. C plus top  que ce que l on imagine la bonne voie! ! Tu es sur le bon mario
12 septembre 2018 à 09:39:34 Pit73 dit: ^ ^
12 septembre 2018 à 09:07:32 Xenon3K dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
12 septembre 2018 à 06:54:39 lazarus dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
12 septembre 2018 à 02:11:29 ValLoche23 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie! ;)
12 septembre 2018 à 01:14:27 Patrice dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie! ;)
11 septembre 2018 à 22:38:23 Xenon3K dit: Merci Patrice :)
11 septembre 2018 à 22:30:47 Patrice dit: On va essayer d'éviter de faire sauter la mise en page du forum ;)
11 septembre 2018 à 18:42:27 Xenon3K dit: Oups dsl je voulais un tout petit gif :/
11 septembre 2018 à 17:22:50 Pit73 dit: ahah, merci les smartphone lol
11 septembre 2018 à 17:21:57 Seyjin dit: Miss Click, ils ont bu combien de verre là ?
11 septembre 2018 à 16:58:18 Eagle4 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 16:48:14 Monos dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 14:23:29 Pit73 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 14:23:07 Pit73 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 13:34:38 Xenon3K dit: Merci, oui c'est pas encore au top. Il y a plein de mécaniques de jeu c'est difficile d'être fidèle à l'original
Voir l'historique

UserBox

Welcome, Guest.
Please login or register.
 
 
 
Mot de passe oublié?

Bientôt

Surprise

Liens

Messages non lus

Télécharger

Divers

Twitter

Les extensions pour MMF2

FaceBook ClickTeam France

Derniers messages

Re : Les Jeux de L'Époque ! par Xenon3K
Aujourd'hui à 14:40:38

Re : Comparer et classer plusieurs compteurs ? par Seyjin
Aujourd'hui à 12:18:08

Re : Comparer et classer plusieurs compteurs ? par Patrice
Aujourd'hui à 12:02:43

Re : Comparer et classer plusieurs compteurs ? par Seyjin
Aujourd'hui à 12:01:45

Re : Comparer et classer plusieurs compteurs ? par Cyberclic
Aujourd'hui à 11:34:11

Re : Comparer et classer plusieurs compteurs ? par Emmanuel
Aujourd'hui à 10:55:03

Re : Comparer et classer plusieurs compteurs ? par Seyjin
Aujourd'hui à 10:43:13

Re : Platformer 2D par ValLoche23
Aujourd'hui à 01:41:51

Re : Platformer 2D par fredetmumu
22 septembre 2018 à 21:34:22

Re : L'Univers des Manettes dans Fusion 2.5 par ValLoche23
22 septembre 2018 à 13:08:57

Re : L'Univers des Manettes dans Fusion 2.5 par Emmanuel
22 septembre 2018 à 12:50:28

Re : Platformer 2D par Pit73
22 septembre 2018 à 11:28:41

Re : L'Univers des Manettes dans Fusion 2.5 par Emmanuel
22 septembre 2018 à 10:51:38

Re : Projet de mini jeux en commun pour Les joutes 2018 par Emmanuel
21 septembre 2018 à 13:30:57

Re : Les joutes 2018 par Emmanuel
21 septembre 2018 à 13:22:27

Re : Platformer 2D par Valeth
20 septembre 2018 à 22:15:26

Re : L'Univers des Manettes dans Fusion 2.5 par Seyjin
20 septembre 2018 à 18:11:59

Re : L'Univers des Manettes dans Fusion 2.5 par ValLoche23
20 septembre 2018 à 17:25:14

Re : L'Univers des Manettes dans Fusion 2.5 par Patrice
20 septembre 2018 à 11:57:40

Re : L'Univers des Manettes dans Fusion 2.5 par Seyjin
20 septembre 2018 à 11:33:41

Nouveau Clickeur

tiffoun
Sawitreesa
imagicalFantasy

Membre en ligne

62 Invités, 0 Utilisateurs

Auteur Sujet: Traitement des Chaînes  (Lu 1089 fois)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2611
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Traitement des Chaînes
« le: 21 décembre 2014 à 11:40:35 »
Le traitement des chaînes.
Rédigé par Jean Monos.
Exemple mfa compatible seulement avec Clickteam Fusion 2.5
L'exemple mfa sansextenssion est compatible avec la version lite.
String Parser n'est pas disponible sur la version lite.


Téléchargement de l'archive qui contient les exemples :
http://comptoir-mmf.eu/tuto/traitementchaine.rar


Introduction
La matrice, la gestion de donnée, les sauvegardes, et plein de truc encore que le traitement de chaîne peut être utile.  Qu'es donc tout ça ?
 
8,2,2,4,6,2,7,4,6,4,7,5,3,4,8,4

Et voici un exemple, la chaîne en italique possède (dans cette exemple) deux  caractéristiques.
Des valeurs numériques. (Qui peuvent être Alphanumérique bien sur)
Et une Virgule.

La virgule permet de séparer les valeurs numériques. C'est que nous appelons un séparateur !
Les Valeurs Numérique (ou Alphanumérique) sont souvent appelé des éléments.
Mais pourquoi ? Pour plein de chose Imaginé sur une ligne de 16 cases, avant de le début de votre niveau il faut le composer de tiles, avec ce genre de chaîne, le programme va savoir que sur la premier case il faut placer le tiles numéros 8, la seconde case le tiles numéros 2, la troisième case encore le tiles 2 et ainsi de suite jusque à la 16em case.

Avec un petit éditeur à coté vous pouvez générer des niveaux et le lire seulement la présence d'une seule scène dans Fusion et pas utiliser la méthode, une scène=> un niveau... Gain de place et faciliter de débuge assuré
Ceci est bien sur un exemple très très simple pour comprendre l'utilité.

Avant de continuer, une petite chose, vous êtes maître de dire ce que vous voulez dans vos chaine. On peux faire des groupes de trois nombres, le premier et le numéros de tiles, le 2em ça position X, et le 3em ça position Y, on repars sur un nouveau cycle. Le 4em (et donc le 1er d'un nouveau cycle) est le numéros de tiles, le 5em ça position X et le 6em ça position Y... Ce qui permet d'affiner et d'ajouter d'autre information à traiter.

Vous pouvez aussi utiliser plusieurs séparateurs. Pratique pour faire des groupes de donnée.
4,0,0#2,0,1#4,0,2
Voici un autre exemple ou je combine deux séparateurs. La virgule et le Croisillon (#). (Non ce n'est pas un dièse)
Le programme va en premier lieu sortir le premier groupe (élément) entre le croisillon pour enfin sortir les informations entre les virgules. (Numéros de tiles, position X, Position Y dans mon exemple bien sur)

On ne fait pas que des niveaux avec ça !
Non, travailler des chaines avec séparateur n'est pas dédier à faire des niveaux de jeu ! Il y a plein de possibilité dont même moi je n'ai pas idée. L'autre truc cool c'est de réaliser votre système de sauvegarde !
Voici un exemple, je veux sauvegarder la position de mon joueur sur la carte et reprendre ma partie plus tard ! Avec l'expérience les gens utilises le fichier ini pour ça. Mais un simple fichier texte fait la même chose avec une petite chaîne avec une virgule. Numéros du niveau,position x,position Y. On peux même facilement ajouter d'autre donnée, vie, nombre de bombe, et j'en passe.  Alors oui le fichier ini semble plus facile à utiliser, mais à la base ce n'est pas fait pour ça. Le fichier ini est un fichier de configuration, mais Chacun utilise la méthode qui lui semble le meilleur. (¨Personnellement j'utilise beaucoup plus les tableaux et la possibilité de sauvegarder directement dans un fichier, une fois ce fichier recharger, tout est en place automatiquement.)

 Allons plus loin sur une idée. La triche ! Le fichier ini peut facilement être trafiquer. Le fichier texte aussi vous allez me dire. Mais si vous "coder" la chaîne en entier avant de la sauvegarder ? Et la décoder dans le logiciel en lui même avant de la travailler ? Dans le fichier Ini, il faut coder et décoder chaque éléments. Personnellement je trouve plus simple de coder une chaîne en entier. (Il y a quand même des méthodes pour parer cela en réalisant une empreinte MD5 des informations sauvegardées avec une clef secrète bien sur le mémoriser aussi dans le fichier ini et au chargement recomposer l'empreinte et ce qui est sauvegarder. Si c'est différent, le joueur à changé une valeur et  donc tricher ! Voir le tuto sur les scores en lignes pour comprendre l'idée !)


Passons à la pratique !
C'est bien beau ce blabla, mais on fait comment sur Clickteam Fusion 2.5 ?
Il y a plusieurs méthode ! Utiliser directement une extension. (Sting parser), ou les fonctions de base du logiciel.

Nous allons débuter avec les fonctions de base du logiciel si vous le voulez bien. (De toute façon vous n'avez pas le choix)

Avec les fonctions de base !
Dans le pack il y a un exemple : sansextenssion.mfa
C'est un exemple que j'ai réalisé pour vous montrer que sans extenssion, vous pouvez analyser une chaine de caractère et de sortir des éléments entre les séparateurs ! Ceci est une méthode parmi tant d'autre.

Dans la premier chaine globale, j'ai placer le séparateur que je voulais utiliser : une virgule.
J'ai ajouté 5 objets. Trois Chaîne, un compteur, et un bouton.
Une Chaîne "source" qui sera le texte à analyser.
Une Chaîne "sortie" qui permet de sortir l'élément analysé
Une Chaîne "Recherche Caract" qui va accueillir le caractère à comparer !
Le Compteur "Curseur" qui permet de connaitre l'emplacement de la lettre à analyser dans la Chaîne.
Et un bouton pour lancer l'analyse d'un élément.

Dans cette exemple nous lançons la recherche élément par élément manuellement. Bien sur le plus souvent il faut faire ça automatiquement pour enchaîner la sortie des éléments entre les séparateurs pour effectuer le travaille dessus.

Ligne 3 :  Quand le bouton suivant est utilisé, on le désactive, on efface le contenue du texte sortie pour accueillir le prochain, et lance la boucle Lecture qui sera le moteur de recherche du programme.

Ligne 5 : Quand la boucle Lecture est appelé, nous allons mémoriser un caractère de la chaîne qui se trouve à la place de la valeur du curseur. Pour cela nous allons utiliser une fonction du logiciel : Extraire la sous chaîne du milieu qui se trouve dans Spécial/Chaînes en éditeur d'expression. C'est une fonction pratique qui permet sortie d'une chaîne, un nombre de caractère voulue, a partir de l'emplacement voulus. Exemple : Dans la chaîne Je suis un Clickeur je peux demander de sortir 5 caractère a partir de 3. (Attention on débute à 0 quand c'est pour l'emplacement) ce qui fait SUIS U
Attention aussi, les espaces comptes. Donc dans notre exemple, nous allons sortir un seul caractère a partir de la valeur du compteur curseur. Ensuite nous allons lancer la Boucle recherche.

Ligne 7 : Quand la boucle Recherche est appelé, et que le contenue de la valeur global (Séparateur) donc une virgule est égale au contenue de la chaîne Recherche caract (vous savez le caractère qui est mémorisé plus haut), alors on active le bouton prêt pour rechercher l'élément suivant, et on ajoute 1 au compteur curseur. L'élément est trouvé au complet.

Ligne 8 : C'est l'inverse de la ligne 7, Quand la boucle Recherche est appelé et que le caractère est différent de la virgule dans notre exemple, alors on ajoute 1 au compteur curseur, on ajoute le caractère que nous avons comparé dans la sortie, et on relance une nouvelle Lecture pour comparer le prochain caractère.

Ligne 10 : Une petite protection pour éviter un "bug" de mémoire. On compare la longueur de la chaîne Source avec la fonction Len, et la valeur du compteur. Comme ça le compteur sait quand il arrive à la fin de la chaîne et peut repartir à 0. Si on fait une recherche au delà du nombre de caractère contenue dans la source, Fusion ne va pas aimer. Comment sortir une lettre qui n'existe pas ?

Voici donc un petit exemple sans l'utilisation d'une extension. Il y a plein de chose à faire en fonction de vos besoins bien sur. A vous de vous adapter.

String Parser
Cette fois si nous allons utiliser l'extension String Parser. Nous voulons le même résultat que sans extension. Afficher Élément par Élément se qui se trouve entre deux séparateurs. Le Fichier exemple est stringparsemfa
J'ai posé pour cette exemple trois objets. String Parser, l'objet Chaîne "Sortie" et un compteur "Élément"

Ligne 3 : En début de scène ont demande à string parser de mémoriser une virgule en tant que séparateur et le texte à analyser.
Ligne 5 : Chaque fois que nous utilisons le bouton on modifie dans la chaîne "sortie", l'élément voulue en fonction de la valeur du compteur et on ajoute 1 au compteur. Attention le premier élément est bien le "1" et non le "0".
Ligne 7 : Comme sans extension une simple mesure de protection pour reboucler la recherche.

C'est tout avec String Parser. Par de recherche caractère par caractère à comparer. String Parser permet aussi de lire et enregistrer des données sur des fichiers, d'utiliser plusieurs séparateur, de faire un cryptage MD5 et bien plus encore.

Comme sans extension, l'exemple n'est pas automatiser. Vous allez devoir utiliser des boucles pour sortir les éléments et les traiter voir en faire une 2nd analyse si il des séparateurs dans des séparateurs. 1,2,3#1,5,5#
1er étape sortir le premier élément entre les croisillons et ensuite les trois éléments entre les Virgules.

Mais ça vous savez le faire maintenant !
« Modifié: 21 décembre 2014 à 11:50:37 par Monos »

alex

  • Nouveau Clickeur
  • Messages: 41
    • Voir le profil
    • XGEN3d
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module Flash: Oui
  • Module HTML5: Oui
Re : Traitement des Chaînes
« Réponse #1 le: 21 décembre 2014 à 12:50:35 »
merci pour ce tuto et ses sources, très pratique pour beaucoup de choses^^
.

ValLoche23

  • Couteau-Suisse Humain
  • Staff Technique
  • Clickeur de Légende
  • *
  • Messages: 1339
  • Minecraftien confirmé
    • Voir le profil
    • GeekMakina
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
  • Module UWP: Oui
Re : Traitement des Chaînes
« Réponse #2 le: 21 décembre 2014 à 23:48:57 »
Merci beaucoup pour ce très bon tutoriel Monos ^^
Tout les chemins mènent au Rhum !

 


+-MiniChat

14 septembre 2018 à 08:44:35 ValLoche23 dit: L'antivirus qui deviens blasée ! xD
14 septembre 2018 à 08:11:40 Seyjin dit: Haha, à force de faire un scan de chaque nouvel exe d’am Monday Zombies, mon antivirus à décidé de le mettre dans la liste des exceptions 😄
13 septembre 2018 à 13:46:26 ValLoche23 dit: Oh sympaaa ! :D
12 septembre 2018 à 18:30:12 Seyjin dit: Ça avance bien 👍
12 septembre 2018 à 18:06:34 Xenon3K dit: Voila j'ai optimisé pas mal: http://ovigne-loic.fr/SuperMarioRetro/ j'ai afiné les mouvements des ennemis (maintenant ils on une hitbox et ils "débordent" d'un pixel dans le décors comme dans l'original)
12 septembre 2018 à 17:40:40 Monos dit: lol.
12 septembre 2018 à 11:42:55 Xenon3K dit: Non mais ça fait plaisir :) En plus tout le monde est d'accord !
12 septembre 2018 à 11:29:20 Pit73 dit: Oui bon elle etait pourrite ma phrase ;)
12 septembre 2018 à 10:55:24 ValLoche23 dit: Pauvre Pit hahaha
12 septembre 2018 à 09:52:28 Patrice dit: Hello xenon il est complexe ton mario. C plus top  que ce que l on imagine la bonne voie! ! Tu es sur le bon mario
12 septembre 2018 à 09:39:34 Pit73 dit: ^ ^
12 septembre 2018 à 09:07:32 Xenon3K dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
12 septembre 2018 à 06:54:39 lazarus dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
12 septembre 2018 à 02:11:29 ValLoche23 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie! ;)
12 septembre 2018 à 01:14:27 Patrice dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie! ;)
11 septembre 2018 à 22:38:23 Xenon3K dit: Merci Patrice :)
11 septembre 2018 à 22:30:47 Patrice dit: On va essayer d'éviter de faire sauter la mise en page du forum ;)
11 septembre 2018 à 18:42:27 Xenon3K dit: Oups dsl je voulais un tout petit gif :/
11 septembre 2018 à 17:22:50 Pit73 dit: ahah, merci les smartphone lol
11 septembre 2018 à 17:21:57 Seyjin dit: Miss Click, ils ont bu combien de verre là ?
11 septembre 2018 à 16:58:18 Eagle4 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 16:48:14 Monos dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 14:23:29 Pit73 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 14:23:07 Pit73 dit: Hello xenon il est top ton mario. C plus complexe que ce que l on imagine un mario ! Tu es sur la bonne voie!
11 septembre 2018 à 13:34:38 Xenon3K dit: Merci, oui c'est pas encore au top. Il y a plein de mécaniques de jeu c'est difficile d'être fidèle à l'original
Voir l'historique
Powered by EzPortal