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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut comment faire un affichage progressif en qbasic?
    Bonjour tout le monde

    Alors voilà, 'aimerai faire un effect "typewriter" en qbasic, mais j'ai du mal à y parvenir.
    Un peu à la manière de l'ordi de david broderick dans WarGames x)

    Il y a un curseur qui se décale lorsqu'on tape au clavier
    - Validation avec Enter
    - Le curseur va à la ligne.
    - La réponse s'affiche progressivement avec le curseur toujours sur la droite
    - puis retour de chariot

    J'imagine que ça devrait se passer comme ça :

    1. Il y a une phrase connue dont on connait la longueur (avec "LEN")
    1. Avec une boucle on affiche sur la même ligne, le texte lettre par lettre tant que le chiffre de la longueur n'est pas atteint

    J'ai noté qu'en SCREEN 12 il y avait un curseur en bout de ligne.
    Mais impossible de gérer la couleur du curseur (on ne peut pas tout avoir semble-t-il, mdr)

    J'avais commençé à faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CLS
    r$ = "Salut humain, ça roule?"
    I = O
    DO
        SLEEP 1
        I = I + 1
        LOCATE 1, 1: PRINT I
    	Locate 2, 1: print... la phrase lettre par lettre mdr
    LOOP UNTIL I = LEN(r$)
    Mais je ne vois pas quoi faire ensuite :
    - avec locate on est un peu forcé d'afficher la phrase au même endroit alors que j'aimerai un affichage "normal" avec un retour de chariot standard
    - je n'arrive pas à diviser le temps de "sleep", ça reste 1 seconde minimum

    Hm... au secours mdr.

    De plus lorsque je tape "typewriter effect qbasic" par exemple, dans google, je ne vois rien comme si ça n'existait pas xD

    Juste un programme que j'avais trouvé "amanda.bas" utilisait cet affichage progressif, mais c'est noyé dans du basic et je m'y perds.
    Un autre programme utilisait le coup du curseur 'indépendemment du SCREEN12 (et donc on pourrait en choisir la couleur, mais là encore c'est un peu le fouilli pour moi.

    J'ai mis ces deux fichiers "bas" en téléchargement ici, si quelqu'un pouvait m'aider à décortiquer le truc, ce serait "Noël" xD

    Merci de vos conseils, et bon we

    alain.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut ça avance
    Alors ça avance un peu mdr. Après quelques recherches j'ai pu faire en sorte d'afficher progressivement une "réponse" à un retour de chariot. Pour l'exemple que j'ai mis ci-dessous, peu importe ce que vous tapez, puis appuyez sur "Enter"

    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
     
    DIM Text AS STRING
    DIM Count AS INTEGER
    DIM Start AS SINGLE
     
    Text$ = "Je suis un super fan du film WarGames ; c'est top cool."
    Curs$ = "Û"
     
    COLOR 7, 9
    CLS
     
    REM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    gogo:
    COLOR 7, 9
    PRINT
    PRINT "C:\>";: INPUT "", A$
     
    REM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    hop:
    TIMER ON
    FOR Count = 1 TO LEN(Text$)
        Start = TIMER
        COLOR 10, 9: PRINT MID$(Text$, Count, 1);
        DO
        LOOP UNTIL TIMER > Start + .01
    NEXT Count
    TIMER OFF
    GOTO gogo
    Donc c'est cool. J'ai aussi ajouté un "Curs$" pour l'afficher "tout le temps" après chaque affichage de lettre (programme ou utilisateur) mais je n'ai pas encore trouvé comment. Donc, je continue mes recherches, mais si quelqu'un sait comment faire je suis preneur

    A bientôt et bon dimanche.
    Alain.

Discussions similaires

  1. comment faire un cumul progressif par mois en sql
    Par cana13 dans le forum Développement
    Réponses: 13
    Dernier message: 03/02/2011, 09h39
  2. Comment faire un affichage d'une image d'origine
    Par Epliknot dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/05/2009, 08h26
  3. Réponses: 1
    Dernier message: 20/04/2007, 09h35
  4. Affichage Hashtable, comment faire ?
    Par pontus21 dans le forum Applets
    Réponses: 2
    Dernier message: 14/01/2007, 17h09
  5. [Conception] Images: Téléchargement, affichage, suppression - Comment Faire ?
    Par mathieu7497 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/12/2006, 11h27

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