Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 21 le Jeu 17 Oct 2013, 13:40
Derniers sujets
Flux RSS



Flag Counter
Partenaires

Créer un effet de mouvement du curseur

Voir le sujet précédent Voir le sujet suivant Aller en bas

Créer un effet de mouvement du curseur

Message par Invité le Sam 24 Aoû 2013, 12:50

Hello !

Aujourd'hui, je vous propose un petit tutoriel  pour réaliser un effet de mouvement du curseur. En d'autre termes: Les déplacements.

En effet, ayant essayé pendant très longtemps de comprendre l'Astuce (Je ne maîtrisais pas encore la boucle FOR, normal  ), j'ai enfin compris et je veux vous en faire par en vous l'expliquant, sans lâcher un simple code sans commentaires et incompréhensible pour les débutants, comme je l'étais il y à peu de temps.

Assez de blabla, commençons !


Dans un premier temps, nous allons devoir définir quatre variables: Les positions X et Y du curseurs et les limites X et Y du terrains.

RAPPEL: X=COLONNES et Y=LIGNES.
ATTENTION: LE SETLOCAL DOIT ETRE ACTIVÉ ! 




Code:
SETLOCAL ENABLEDELAYEDEXPENSION
:: // POSITION X DU CURSEUR:
SET "POSY=8"
:: // POSITION Y DU CURSEUR:
SET "POSX=16"
:: // NOMBRE DE LIGNES:
SET "LIMY=16"
:: // NOMBRE DE COLONNES:
SET "LIMX=32"
Nous allons maintenant passez à l'étape la plus "complexe" (Elle l'était pour moi à l'époque  ): L'affichage du terrain et du curseur.




Code:
:: // DE 0 A LA LIGNE DU CURSEUR PAR PAS DE 1,ON AFFICHE UNE LIGNE VIDE.
FOR /L %%Y IN (0,1,!POSY!) DO (ECHO.)
:: // DE 0 A LA COLONNES DU CURSEUR, ON AFFICHE UN VIDE AVANT LE CURSEUR.
FOR /L %%X IN (0,1,!POSX!) DO (SET "SPACE= !SPACE!")
:: // ON AFFICHE LE VIDE ET LE CURSEUR.
ECHO !SPACE!Û
:: // DE LA LIGNES DU CURSEUR A LA LIMITE VERTICALE DU TERRAIN, ON AFFICHE UNE LIGNE VIDE.
FOR /L %%Y IN (!POSY!,1,!LIMY!) DO (ECHO.)

Enfin, nous allons géré l'effet de mouvement (Haut/Bas/Gauche/Droite). Utiliser SET /P ou CHOICE.
Vous avez cherché ? Oui ? Correction commentée ! (SET /P):
NOTA-BENE: LES LIMITES DU TERRAIN NE SONT PAS GÉRÉE, A VOUS DE TROUVER PAR VOUS MÊME  

Code:
"SET /P MOVE="
:: // SI ON VA EN HAUT, LE CURSEUR MONTE, DONC ON SUPPRIME UNE LIGNE AVANT CELUI-CI:
IF "%MOVE%" EQU "Z" SET /A "POSY-=1"
:: // SI ON VA EN BAS, LE CURSEUR DESCEND, DONC ON AJOUTE UNE LIGNE AVANT CELUI-CI:
IF "%MOVE%" EQU "S" SET /A "POSY+=1"
:: // SI ON VA A GAUCHE, ON SUPPRIME UNE COLONNE AVANT CELUI-CI:
IF "%MOVE%" EQU "Q" SET /A "POSX-=1"
:: // SI ON VA A DROITE, ON AJOUTE UNE COLONNE AVANT CELUI-CI:
IF "%MOVE%" EQU "D" SET /A "POSX+=1"

ATTENTION, A CHAQUE RETOUR DANS LA BOUCLE, ON DOIT RÉINITIALISE LE VIDE DE LA COLONNE ! 

Correction finale (Non commentée, avec CHOICE cette fois ci):



Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "POSX=16"
SET "POSY=8"
SET "LIMX=32"
SET "LIMY=16"
:FIELD
CLS
SET "SPACE="
FOR /L %%Y IN (0,1,!POSY!) DO (ECHO.)
FOR /L %%X IN (0,1,!POSX!) DO (SET "SPACE= !SPACE!")
ECHO !SPACE!Û
FOR /L %%Y IN (!POSY!,1,!LIMY!) DO (ECHO.)
CHOICE /C ZSQD /N > NUL
IF "%ERRORLEVEL%" EQU "1" SET /A "POSY-=1"
IF "%ERRORLEVEL%" EQU "2" SET /A "POSY+=1"
IF "%ERRORLEVEL%" EQU "3" SET /A "POSX-=1"
IF "%ERRORLEVEL%" EQU "4" SET /A "POSX+=1"
GOTO FIELD

Voila, en espérant vous avoir aidé !

Dylan.

Invité
Invité


Revenir en haut Aller en bas

Re: Créer un effet de mouvement du curseur

Message par Sachadee le Sam 24 Aoû 2013, 13:06

Merci Dylan

_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum