Messagerie


La boucle rapide (niveau avancé).

Kloug
1497 messages
Fusion 2.5
mardi 15 juillet 2014 à 04:06
Salut,

L'échelle des niveaux moteurs cases à cocher (warning, warning, à ne pas prendre au premier degré, mais comme une rigolade).



Qu'est ce qu'une boucle rapide?
Une boucle rapide est un système et bla bla bla...

Comment savoir le pourquoi du comment?
Et bla bla bla... Index de boucle retourne l'index d'une boucle en cours. Utilisez-la au milieu des événements en boucle pour connaitre la position de la boucle.

Pourquoi, utilisez-la, utilisez-le serait peut être mieux?

Corrigez l'aide MMF s.v.p (humour).

Les réponses vous semblent du charabia?

Sans blague...

La question à se poser est pourquoi utiliser une boucle rapide?

En gros une boucle rapide accélère une itération.

Itération:
En informatique, procédé de calcul répétitif qui boucle jusqu'à ce qu'une condition particulière soit remplie.

Encore du charabia (lol).

Par exemple, une boucle rapide permet d'afficher des ressources graphiques instantanément.

Avec un clic soft, il existe déjà un paquet de boucles, condition toujours, etc, on n'utilise pas une boucle rapide pour faire joli, comme je l'ai, hélas, déjà constaté.

Normalement une boucle rapide sert à accélérer un processus, des petits "génies" font le contraire, en imbriquant des boucles rapides.

A moins d'avoir un niveau élevé en programmation, imbriquer des boucles rapides est le genre de truc à éviter.

Un autre point à ne pas négliger, une boucle rapide est prioritaire, une fois lancée rien ne l'arrête, à moins d'intervenir d'une façon ou d'une autre évidemment.

Donc on ne lance pas une boucle rapide n'importe comment, pour l'arrêter aussi n'importe comment.

Votre application va vite "casser" (planter ou faire du n'importe quoi), si vous lancer une boucle rapide à l'aide de plusieurs événements au petit bonheur la chance, soit plusieurs fois alors qu'elle n'a pas encore effectué le travail demandé.

Lancer et arrêter correctement une boucle rapide réclame un minimum de jugeote.

On entre pas comme cela dans le domaine de la programmation complexe, on doit avoir un minimum d'explications, voire de bagages, donc d'expérience.

Un clic soft est un outil puissant certes, mais ce n'est pas une raison pour faire du n'importe quoi, et venir après dans la rubrique aide pour nous casser les pieds (humour).

Désolé de le dire, mais un tuto-vidéo ne sert pratiquement à rien pour comprendre la boucle rapide, parce que l'auteur de la vidéo va vous servir sur un plateau, un langage de codeur (du charabia).

A moins d'avoir le décodeur vous risquez fort, de ne pas capter grand chose.

Sauf si le codeur se met à "radoter".

Les deux questions à se poser avant de réaliser une boucle rapide.

1) Pourquoi je mets en place une boucle rapide?

2) Quel est le but à atteindre?

Vos réponses doivent être logiques, en passant d'abord en revue, toutes les possibilités de MMF.

Je mets en place une boucle rapide pour gérer un défilement parallaxe.

Très pertinent...

Je mets en place une boucle rapide pour gérer la hit box d'un PJ.

Encore plus pertinent!

Les boucles rapides fantomatiques dans un projet, quoi de mieux pour faire super codeur!

Demain j'utilise en prime par dessus, le OR logique et filtré pour passer pour une épée, un cador du klik coding.

Et après demain, je lance et stop une boucle rapide à l'aide d'une autre boucle rapide, afin d'atteindre le Nirvana.

Oui! Pauvres mortels rampez à mes pieds, et reconnaissez que, lécher les semelles de mes souliers n'est rien d'autre qu'un immense privilège.

Oh! Que c'est beau! S'exclamera le novice toujours prêt à tomber dans le panneau.

Comme cet article s'adresse principalement aux "débutants", je vais prendre un exemple apparemment débile, afin de proposer un but facile à atteindre, en plus cela fera des vacances pour mon cerveau en ébullition.

1) Réaliser les cases d'une grille "rapidement".

2) Afficher une grille "rapidement".

"Rapidement" pléonastique parce que tout dépendra du niveau du cliqueur.

Discourir pendant des heures sur la notion case, serait une perte de temps, un curseur permet néanmoins de la symboliser.

Ce curseur fait 40x40 pixels, la grille fait 16x11 cases, soit un total de 176 cases.

A l'aide d'une boucle rapide "Speed" MMF dépose 176 cases, si ça fonctionne, cela devrait être "rapide".

La mise en pratique fait seulement 5 lignes, le principe est le même que celui d'un moteur de déplacement auto, mais en plus "rapide".

Le curseur se déplace sur l'axe X de plus 40 pixels à chaque boucle rapide "Speed".

Un compteur "X Cases" plus précis qu'un index (blague), permet de déplacer le curseur sur l'axe Y, de...



Vous dormez ou quoi?

De plus 40 pixels.

"X Cases" = 0 >> Démarrer la boucle rapide "Speed" 16 fois.
Position Y > 400 pixels alors désactiver la boucle rapide via un groupe d'événements.

Il y a un compteur "Index", mais à mon humble avis, on a pas trop le temps de le voir défiler (lol).

Speed Cursor:
Affichage instantané d'une grille via un curseur, obtenir un numéro de case.

https://www.dropbox.com/s/x3eo0x209y2fkqx/Speed%20Cursor_CR.mfa



Pour voir la rapidité. >> Touche F2 (lol).

Ce "blind test" vient de souligner une chose importante, avec MMF préciser le nombre de boucles rapides à effectuer est fortement conseillé (obligatoire), sinon on se retrouve avec un "scan" permanent, le genre de truc qui peut ralentir énormément une application, sans parler du reste.

Bien sûr, vous pouvez lancer une boucle rapide avec la condition toujours, mais vous devez savoir exactement pourquoi, parce qu'il s'agit d'un "scan" permanent, le genre de truc qui peut ralentir énormément une application.

Le but du jeu étant d'être "rapide" plutôt que lent.

Généralement, on utilise un boucle rapide pour parcourir, scanner des cases.
Cases ou boites "invisibles" pour faire simple, dans lesquelles on peut trouver, un numéro de case virtuelle, une chaine alphanumérique, un avion à réaction, un éléphant rose, une brosse à dent.

A retenir...

© Éviter la boucle rapide fantomatique. ©

© Lancer et arrêter correctement une boucle rapide réclame un minimum de jugeote. ©

© Quand on est sûr de rien, le mieux est de trouver un moyen de ralentir la boucle, afin de vérifier où en est l'index via un compteur. ©

Merci de votre attention.

A+++
ValLoche23
1452 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 17 juillet 2014 à 15:10
A titre purement personnel, mon cher petit Kloug, je préfère de loin entendre une explication quitte à que le codeur "radote" et d'avoir une vidéo et non pas des images, que de lire le paté que t'a fourni.

Maintenant, si toi tu n'aime pas les vidéos, eh bien c'est ton problème, moi j'ai commencer et j'ai appris avec cela. C'est pour cela que je soutient haut et fort Crystal Noir ! :)

Cordialement.
Xenon3K
763 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 17 juillet 2014 à 15:52
C'est un bon tuto mais cette technique est trop lente, avec Fusion il est plus rapide d'appeler la boule X*Y fois et de mettre l'actif en position avec ( X = (LoopIndex("boucle") Mod YTotal) * Width, Y= (Ceil(LoopIndex("boucle")/YTotal)* Height ) que d'appeler la boucle pour chaque lignes.

J'ai fait le test et la grille s'affiche instantanément.
Kloug
1497 messages
Fusion 2.5
vendredi 18 juillet 2014 à 02:23
ValLoche23, ne prends pas tout au premier degré, on ne va pas relancer le débat, certains préfèrent une vidéo, d'autres un roman et d'autres encore une mise en pratique.

Il en faut pour tous les goûts.

Merci Xenon3K, de préciser et de partager.

Edit: Mise en pratique corrigée et commentée, c'est la même technique mais avec un lancement différent, et un changement de nom, "Grid" pour la boucle rapide.

Kloug
1497 messages
Fusion 2.5
vendredi 18 juillet 2014 à 21:03
Salut,

Pour faire plaisir à ValLoche23, un tuto vidéo.

"Ce dernier vous permettra de comprendre à quoi servent les Fastloops (boucles rapides) et comment les utiliser avec un exemple de Fastloops imbriquées."

Complex-softwares:
http://complex.softwares.free.fr/index.php?p=tutorials

A+
Kloug
1497 messages
Fusion 2.5
dimanche 3 août 2014 à 00:38
Resalut à tous,

Après mon "radotage" ou pâté indispensable, si on passait à quelque chose de plus consistant?

Assez d'essais plus de concret!

L'apéritif!

Valeur Index Maximum sans BR et avec BR (3 lignes):
https://www.dropbox.com/s/kjjmikd351kbw8x/Valeur_Index_Max_BR.mfa?dl=1

Le sandwich!

Slider Puzzle BR (23 lignes):
https://www.dropbox.com/s/m3tbzzrku5affmq/Slider%20Puzzle_CP.zip?dl=1

Rappel du principe de la boucle rapide, repris pour le Slider Puzzle, un exemple à décortiquer à tête reposée.



Dans le cas du slider puzzle, le curseur rouge entre en collision avec une pièce, la variable A du curseur est la même que la variable A de la pièce, ajouter +1 au compteur des pièces correctement placées.

Cordialement.

A+++

Kloug aux marrons.
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 25 visiteurs au total

Derniers messages