zone de texte temps réel dans un jeu !
Publié : jeu. 26/juil./2007 0:16
Voilà une petite astuce à améliorer pour crée une zone de texte dans votre application comme le Input de la Consol Dos mais sans arrêter l’exécution du programme.
Je l’ai crée en quelques minutes que pour donner l’exemple, donc c’est à améliorer.
Voilà le Code :
Si quelqu’un a une astuce meilleur elle sera la bienvenu, car dans ma technique y’a un petit problème avec le Delay() , il ralentit le programme quand vous cliquez sur la touche effacer , mais si je l’enlève , l’effacement devient très rapide. 

Je l’ai crée en quelques minutes que pour donner l’exemple, donc c’est à améliorer.
Voilà le Code :
Code : Tout sélectionner
InitScreen()
InitSprite()
InitKeyboard()
OpenWindow(0,0,0,300,300,"")
OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0)
Procedure zone_texte(x.l,y.l,couleur.l)
Static texte$,Start
If start = 0
start = 1
CreateSprite(0,600,40)
EndIf
ExamineKeyboard()
t$ = KeyboardInkey()
If KeyboardPushed(#PB_Key_Back)
texte$ = Left(texte$,Len(texte$)-1)
Delay(50)
Goto 1t
EndIf
If t$ <> ""
texte$ = texte$ + t$
EndIf
1t:
StartDrawing(SpriteOutput(0))
Circle(0,0,2000,0)
DrawText(x,y,texte$,couleur,0)
StopDrawing()
DisplaySprite(0,x,y)
EndProcedure
CreateSprite(1,600,600)
Procedure fon()
StartDrawing(SpriteOutput(1))
xc = 1
yc = 1
For Rayon = 400 To 10 Step -10
Circle(xc, yc, rayon ,RGB(Random(255),Random(255),Random(255)))
Next Rayon
StopDrawing()
DisplaySprite(1,0,0)
EndProcedure
Repeat
fon()
zone_texte(10,10,255)
FlipBuffers()
Event = WindowEvent()
Until event = #PB_Event_CloseWindow
