Comment simuler un vieux ecran EGA

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Comment simuler un vieux ecran EGA

Message par Kwai chang caine »

Bonjour à tous

J'ai encore une idée à la "Biiip"

Voila je voudrais pouvoir créer une fenetre qui simulerais un vieux ecran EGA de style DOS d'une résolution par exemple de 90 caracteres horizontaux sur 30 caracteres verticaux.
Style caracteres vert, sur fond vert.
Avec le gros carré comme curseur ou bien le trait qui clignote :D

Avec une fonction d'ecriture et de lecture du style :

Code : Tout sélectionner

Procedure EcrisFenetreDos(Ligne,Colonne, texte)
*
*
*
EndProcedure

Procedure LitFenetreDos(Ligne,Colonne, NombreCaracteres)
*
*
*
EndProcedure

EcrisFenetreDos(4, 6, "Coucou") ' Ecrit le mot "Coucou" à la 4e ligne et 6e colonne 
Debug LitFenetreDos(4, 6, 5) ' Lit 5 caracteres à partir de la 4e ligne et 6e colonne
Je n'ai aucune idée de comment réaliser cette merveille.
Quelqu'un de vous pourrait éclairer ma lanterne désespérément étéinte :cry:

Merci de votre aide
Dernière modification par Kwai chang caine le ven. 14/sept./2007 17:12, modifié 2 fois.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Pour t'aider (Jeux >> Zone de texte en temps réel dans un jeu (mytic) )

Code : Tout sélectionner

Global Texte$ 
  
Declare Graph() 
Declare zone_texte(x.l,Y.l,Couleur.l) 
Declare.S Curs(ms.L, Char.S = "_") 

InitSprite () 
InitKeyboard () 
OpenWindow (0,0,0,300,300, "" ) 
OpenWindowedScreen ( WindowID (0),0,0,300,300,0,0,0) 

Texte$ = "A>" 
Repeat 
    Graph() 
    FlipBuffers () 
    Event = WindowEvent () 
Until Event = #PB_Event_CloseWindow 





Procedure zone_texte(x.l,Y.l,Couleur.l) 
  ExamineKeyboard() 
  Texte$ = Left(Texte$, Len(Texte$) - KeyboardReleased( #PB_Key_Back ) ) + KeyboardInkey () 
  DrawingMode(#PB_2DDrawing_Transparent) 
  DrawText (x+2,Y+2,texte$ + Curs(500),#Black,0) 
  DrawText (x,Y,texte$ + Curs(500),Couleur,0)    
EndProcedure 

Procedure Graph() 
    StartDrawing ( ScreenOutput ()) 
    xc = 1 
    yc = 1 
     For Rayon = 400 To 10 Step -10 
         Circle (xc, yc, Rayon , RGB ( Random (255), Random (255), Random (255))) 
     Next Rayon 
    zone_texte(10,10,#White) 
     StopDrawing () 
EndProcedure 

Procedure.S Curs(ms.L, Char.S = "_") 
  Static Used.L 
  Static Start.L 
  Static CursorStat.B 
  If Used = 0: Start = ElapsedMilliseconds(): Used = 1: EndIf 
  If ElapsedMilliseconds() > Start + ms 
    CursorStat = 1 - CursorStat 
    Used = 0 
  EndIf 
  If CursorStat 
    ExitChar.S = Char 
  Else 
    ExitChar = "" 
  EndIf 
  ProcedureReturn ExitChar 
EndProcedure 
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci OLLIVIER de ta réponse rapide.

Effectivement c'est un bon début, mais y'a encore du lab :D

Pas de retour à la ligne.
Pas de resizing de la fenetre possible.
Pas de lecture de zone de texte.

Mais c'est un bon debut quand meme, je le met dans ma hotte.
Encore merci 8)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

..........
Dernière modification par Backup le mar. 19/août/2014 13:20, modifié 1 fois.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Phénoménal ! T'arrête pas de triper!
:D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ooouuuaaahh!!!
Trop top cool de la balle :D

On s'y croirais.
T'avais de ces idées....

Dis voir crois tu qu'il serait possible de faire ce genre d'ecran dans une fenetre avec les caracteres qui grossissent si l'on agrandit l'ecran.
En fin de compte proportionnel à la grandeur de la fenetre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

........
Dernière modification par Backup le mar. 19/août/2014 13:21, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Alors la .......on s'approche, on s'approche, de ce que je veux réaliser.
J'suis super content :D

Y'a ben que des barjos comme nous deux pour essayer de creer des EGA avec une résolution de 90 X 30 monochrome, alors que tous les clampins de la terre courent apres les terapixels :lol:

Moi c'est mon coté nostalgie, en plus j'adore ces affichages.
J'ai meme plein de ces ecrans dans mon grenier.
Je ne desepere pas un jour d'avoir le temps de les rebrancher à un vieux GOUPIL ou IBM et de les regarder briller de leur "2" couleurs ecrire un :
"c:\>" :D

Je pense que ce doit etre plus dur mais aurais tu une combine pour la fonction inverse, la lecture des caracteres inscrit dans ton super beau ecran DOS.

Encore merci de ta precieuse aide 8)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

.......
Dernière modification par Backup le mar. 19/août/2014 13:21, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Tu as raison, le mode console a l'air fait pour ça.

Le bleme c'est que lorsque l'on modifie les dimensions de la fenetre, le texte ne s'agrandie pas et se perd dans les ascenseurs, :?

Comme moi quand je me promene dans une tour bourré d'ascenseur :lol:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Dis voir je viens de jeter un oeil aux instructions "Consoles" pour lire les caracteres tu utiliserais donc :

Code : Tout sélectionner

Resultat = ReadConsoleData(*Buffer, Taille)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bon je viens de creuser un peu partout et j'ai trouvé un code de SROD qui permet de lire les lignes de la console.
Je l'ai "mixé avec celui de DOBRO

Code : Tout sélectionner

If OpenConsole() 

 ConsoleTitle("Ceci est le titre de la console")
 EnableGraphicalConsole(1) ; passe en mode graphique 
 ConsoleColor(10,0)  ; couleur de text vert, couleur fond noir 
 ConsoleCursor(10) ; gros curseur 
 ConsoleLocate(5, 30); positionne le curseur 
 PrintN("Appuyez sur [Entree] pour quitter") ; ecrit 
 ConsoleLocate(40, 30) ; laisse le curseur a la fin 
 a$ = Input() ; attent une reponse :D 
 MessageRequester("", a$) 
 Coordinate.l
 x.w = 5: y.w = 30
 PokeW(@Coordinate, x) 
 PokeW(@Coordinate + 2, y)
 NumCharsRead.l 
 Buffer$=Space(100)
 ReadConsoleOutputCharacter_(7, Buffer$, 100, Coordinate, @NumCharsRead) 
 Debug Buffer$ 
 CallDebugger
 
EndIf 
Apparement ça marche, mais c'est pas tres simple.
Pas de "ReadConsoleData"

Est-ce la meilleure methode a votre avis ?
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Message par Fortix »

que de nostalgies :) ,

ça me fais rappeler mon premier "Trojan", que je manipulais avec ce type de console :cry: avec un petit language interpreteur façon @Dobro (en moin compliqué bien sûr :lol: )

le bon vieux temp :cry: :cry:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

M'en parle pas.
Que donnerais-je pour retourner 30 ans en arriere :cry:

TO7, TO7 ou est tu ???
M'en fous j'en ai racheté un sur E-Bay, na! :D
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Message par Fortix »

Salution, est il possible de changer la couleur du curseur de la console??,
merci :D
Répondre