Page 1 sur 1
Graphique console
Publié : mar. 04/août/2009 19:01
par MetalOS
Salut j'aurai voulu savoir si il était possible de faire une interface de ce type avec les commandes interne de PB pour la console.
Si oui comment faire, et si non existe t'il une lib qui le permet ? Merci.
Publié : mer. 05/août/2009 2:55
par Ollivier
Salut MetalOS,
Oui, tu peux faire un affichage de ce type avec les fonctions natives de la binliothèque de la console. T'as juste à régler EnableGraphicalMachin() (je ne sais plus le terme exact: c'est dans la bibliothèque) pour écrire chaque "case" de manière individuelle. Le seul hic que je peux vérifier c'est si tu as les caractères graphiques pour faire le cadre, mais ça me semble superficiel...
Ollivier
Publié : mer. 05/août/2009 3:06
par Ollivier
Après vérif, tu as bien les rudiments de caractères graphiques pour faire un cadre. En revanche, si tu veux un tel affichage, il te faut donc activer la console graphique avec EnableGraphicalConsole(), et dans ce cas, ça n'est disponible que sous Windows et, surtout, il te devient impossible d'avoir les pipes.
Code : Tout sélectionner
OpenConsole()
EnableGraphicalConsole(1)
ConsoleColor(15, 1)
For H = 0 To 15
For L = 0 To 15
ConsoleLocate(L, H)
Print(Chr(H << 4 + L) )
Next
Next
Input()
CloseConsole()
End
Publié : mer. 05/août/2009 11:28
par Backup
..........
Publié : mer. 05/août/2009 16:31
par MetalOS
Merci Ollivier et Dobro pour vos réponses. Dobro je connaissais déjà ton casse brique en console mais je ne trouvais plus les sources. Merci .

Publié : ven. 07/août/2009 11:47
par Fortix
Salutation
@Dobro ton mini play façon spectrum est trop dure
en fait j'y pense

, comment fait on pour afficher le curseur en pavé et coloré et en plus si possible qui clignotte en même temps(pavé=taille max);
pour ma part jsui bloqué sur ce truc qui semble être simple
merci
Code : Tout sélectionner
Global CAR$
x=10
y=10
If OpenConsole()
EnableGraphicalConsole(1)
ConsoleColor(9,0)
ConsoleCursor(0)
ConsoleLocate(x,y)
CAR$=Chr(219)
Repeat
fin$=Inkey()
FIN$=UCase(fin$)
nb=Asc(FIN$)
;Debug CAR$
;Debug RawKey()
;Debug fin$
If (nb>=65 And nb<=93) Or (nb>=45 And nb<=57) Or (nb>=35 And nb<=38) Or (nb>=40 And nb<=43) Or (nb>=58 And nb<=63) Or nb=95 Or nb=32 Or nb=13 Or nb=124 Or nb=126 ;Or nb=13 Or (nb>=48 And nb<=57) Or nb=58 Or (nb>=35 And nb<=38)
x=x+1
If nb<>13
ConsoleLocate(x,y)
If GetAsyncKeyState_(#VK_LEFT)
x=x-1
EndIf
If GetAsyncKeyState_(#VK_RIGHT)
x=x+1
EndIf
Print(FIN$+CAR$+" ")
EndIf
EndIf
;
If nb=13
y=y+1
x=7
;ConsoleLocate(x,y)
EndIf
Delay(150)
ForEver
EndIf
Publié : ven. 07/août/2009 22:54
par Ollivier
Tu as toutes les touches clavier dispo avec Inkey() et Rawkey(). Par contre, il ne faut pas systématiquement appeler Rawkey() sinon ça bugue. Il faut l'appeler uniquement quand Inkey() = "" sinon tu bloques Inkey().
Ex:
Code : Tout sélectionner
If OpenConsole()
EnableGraphicalConsole(1)
ConsoleColor(15, 1)
ConsoleCursor(10)
For I = 0 To 24
ConsoleLocate(0, I)
Print(Space(80) )
Next I
CAR$=Chr(219)
L = 0
H = 0
Repeat
ConsoleLocate(L, H)
Delay(1)
K$ = Inkey()
Raw = RawKey()
If K$
A = Asc(K$)
If A > 31
Print(K$)
L + 1
If L > 79
L = 0
H + 1
EndIf
Else
If A = 27
Quit = 1
EndIf
If A = 13
L = 0
H + 1
EndIf
If A = 8
If L > 0
L - 1
EndIf
EndIf
If A = 9
L = L - (L % 3) + 3
EndIf
EndIf
Else
Raw = RawKey()
If Raw
Select Raw
Case 37
If L > 0
L - 1
EndIf
Case 38
If H > 0
H - 1
EndIf
Case 39
If L < 79
L + 1
EndIf
Case 40
If H < 24
H + 1
EndIf
EndSelect
ConsoleLocate(0, 24) ; 2 lignes qui servent à voir les codes
Print("<" + Str(Raw) + ">") ; reçus par RawKey()
EndIf
EndIf
Until Quit
EndIf
Publié : sam. 08/août/2009 20:01
par Fortix
Salut
@Ollivier
merci et bien joué pour le détail qui ma échapé
bravo et encore merci t'es un géni
moralitée de l'histoire: je n'exploite pas suffisament les possibilitées
donc comme tu as pu constater, je cherches à reproduire l'interface d'époque, et grace à toi j'y suis enfin parvenu enfin presque mais le principal est fait

, merci merci
