IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Animation en Batch comme towel.blinkenlights.nl (telnet)


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 140
    Par défaut Animation en Batch comme towel.blinkenlights.nl (telnet)
    Bonjour, existe-t-il un autre moyen de faire une "animation" comme sa:

    (star wars)
    dans telnet.exe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    o
    towel.blinkenlights.nl
    plutot que faire le "dessin" avec des symboles suivis de sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sleep "le nombre de s ou de ms"
    ou encore sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    "Remplacer X par le nombre de secondes "
    
    
    @echo off
    
    set temps=X
    
    set /a secondefin=%time:~6,2%+%temps%
    if %secondefin% GEQ 60 (goto def) else goto inf1minute
    
    
    :inf1minute
    if %secondefin% EQU %time:~6,2% (goto fin) else goto inf1minute
    
    
    
    
    :def
    set /a seconde=%time:~6,2%
    set /a minute=%time:~3,2%
    set /a heur=%time:~0,2%
    set /a minutefin=%time:~3,2%
    set /a heurfin=%time:~0,2%
    goto sup1minute
    
    :sup1minute
    set /a secondefin=%secondefin%-60
    set /a minutefin=%minutefin%+1
    set minutesecondefin=%minutefin%:%secondefin%
    if %secondefin% GEQ 60 (goto sup1minute) else goto sup1heur
    
    
    :sup1heur
    if %minutefin% GEQ 60 (goto sup1heur2)
    
    :sup1heur2
    set /a minutefin=%minutefin%-60
    set /a heurfin=%heurfin%+1
    set heurminuteseconde=%heurfin%:%minutefin%:%secondefin%
    if %minutefin% GEQ 60 ( goto sup1heur) else goto start2
    
    :start2
    if %heurminuteseconde% EQU %time:~0,8% (goto fin) else goto start2
    
    
    :fin
    "le dessin"

    Voila merci a+

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 140
    Par défaut
    Pour ceux qui n'ont pas compris pourquoi je mets sleep et un batch d'attente:
    C'est pour faire attendre une courte durée avant la prochaine frame

    Voila Merci

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    J'ai pas bien compris l'interet du gros batch...
    Il fait un sleep et affiche "le dessin"

    Donc par exemple, pour avoir un point qui avance doucement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    set /p steps=Nombre d'etapes: 
    set /p temps=Delai entre 2 frames (en secondes): 
    
    
    set ligne=.
    
    FOR /L %%z IN (0,1,%steps%) DO (
    cls
    echo !ligne!
    set ligne= !ligne!
    sleep %temps%
    )
    
    cls
    ceci dit, on efface l'écran et on dessine l'image suivante...
    Je me demande si on ne pourrait pas faire une vraie animation...
    genre
    [debut]
    [bla bla bla précédent l'animation]
    "-"
    [fin]
    [1 sec plus tard]
    [debut]
    [bla bla bla précédent l'animation]
    "\"
    [fin]
    [1 sec plus tard]
    [debut]
    [bla bla bla précédent l'animation]
    "|"
    [fin]

    etc...
    C'est à dire une animation où on remplace 1 caractère (ou plus) sans éffacer l'écran et donc où on garde le texte précédent.
    C'est à dire plus ou moins une barre de progression en batch =)

    Est-ce possible? Je n'en n'ai pas vu dans le forum mais je l'ai juste survolé à une vitesse supersonique donc bon... ^^

    [edit]
    Une première étape serait déjà d'écrire sur la meme ligne:

    "|"
    "|-"
    "|--"
    "|---"
    "|---|"


    Une seconde étape serait de modifier le dernier caractère (ou les X derniers):

    "-"
    "\"
    "|"
    "/"
    "-"


    L'étape ultime serait de modifier des caractères mais pas tous :p (mais on peut le faire si on gère l'étape 2, simplement en "remplaçant" le caractère qu'on veut constant par un caractère identique:

    "|...|"
    "|+..|"
    "|++.|"
    "|+++|"

    [\edit]

  4. #4
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par Tuesd Voir le message

    etc...
    C'est à dire une animation où on remplace 1 caractère (ou plus) sans éffacer l'écran et donc où on garde le texte précédent.
    C'est à dire plus ou moins une barre de progression en batch =)

    Est-ce possible? Je n'en n'ai pas vu dans le forum mais je l'ai juste survolé à une vitesse supersonique donc bon... ^^


    [\edit]
    Oui c'est possible, voici un petit code basique pouvant être améliorer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    for /L %%b in (1=1=10) do (
    for %%a in (/ - \ ^| / - \ ^|) do (
       cls&echo/&echo/       %%a Chargement %%a 
       ping -n 1 localhost >nul
    )
       cls&echo/&echo   _______Suite du code______
    )
    pause>nul

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    Haha, bein tenté, mais non:

    C'est à dire une animation où on remplace 1 caractère (ou plus) sans éffacer l'écran et donc où on garde le texte précédent.
    Or ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cls&echo/&echo/       %%a Chargement %%a
    vide l'écran ^^

  6. #6
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par Tuesd Voir le message
    Haha, bein tenté, mais non:
    je ne tente..pas je donne une piste c'est tout

    Pour avoir cet effet tu ne doit pas avoir de CRLF (pas de retour à la ligne) donc un set VAR=!VAR!%CHAINE% ou bien set/p var=%chaine%<nul te permettera ça

    Bon codage

Discussions similaires

  1. Animations graphiques BATCH (Windows) :
    Par greg110774 dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 20/07/2010, 08h48
  2. animation au demarrage comme sous linux
    Par canary dans le forum Langage
    Réponses: 24
    Dernier message: 03/01/2008, 17h41
  3. Réponses: 27
    Dernier message: 17/08/2006, 22h08
  4. Telnet et Batch
    Par M.Dlb dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 26/10/2005, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo