Bild scrollt nach vielen Print-anwendungen mit..

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

.:_]TRaSh

Betreff: Bild scrollt nach vielen Print-anwendungen mit..

BeitragSo, Aug 08, 2004 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Ich habe mich mal ein wenig mit Netzwerk-code auseinander gesetzt und jetzt eine Art Chat geschrieben, der frei nach folgendem supersimplen Prinzip besteht:

Text eingeben -> Text wird auf dem eigenen Bildschirm mittels PRINT ausgegeben -> Text wird an alle anderen versandt
Text bekommen -> Text wird mittels Print auf dem Bildschirm ausgeben

Logisch, ne? Very Happy

Jetzt hab ich mir aber gedacht, ich verschönere das Ganze mit Hilfe einer Hintergrundgrafik. Damit die Grafik nicht die ausgebenen Texte übermalt, habe ich das Zeichnen der Grafik VOR der Hauptschleife angebracht.

Das ganze funktioniert auch ganz prächtig, allerdings nur bis zu dem Punkt, wo der ausgebene Text den unteren Rand berührt.. ..dann rutscht nämlich der Text eine Zeile jeweils nach oben.. ..und das Bild leider auch.

Wenn ich das Bild in der Hauptschleife zeichnen lasse, übermalt es logischerweise ältere PRINT-Texte.

Gibt es also irgendeine genauso schön-simple Technik, die möglichst ohne Cls arbeitet, damit ich den ganzen Kram nicht irgendwo immer wieder speichern muss? Confused
[20:17] IMurDOOM: hm irgendwie is die mitte des viehs kaputt
[20:17] TRaSh: ein bisschen
[20:18] DarkAngel: es tut mir irgend wie leid
 

Ballermann99

BeitragSo, Aug 08, 2004 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du ein Hintergrundbild benutzen willst, hol Text anstatt Print.
Du musst nur alle Nachrichten in nem Array speichern und dann die Nachrichten mit Text über das Bild schreiben.

MfG Ballermann99

Mr.Keks

BeitragSo, Aug 08, 2004 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
1. prints in ein bild schreiben, wenn du kein cls magst.
oder besser: 2. doch jede schleife neu zeichnen und aus feld/bank auslesen...
MrKeks.net

DivineDominion

BeitragSo, Aug 08, 2004 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Äh, ja.

Nimm TEXT oder, damit es schnell ist, eine Bitmapfont-Routine. PRINT ist nicht für Spielegrafi kgedacht sondern für Konsolenanwendugnen und zum debuggen.

Gibt hier etliche Beispiele wie man mit GetKey eine Input-Routine ersetzt etc.

CLS brauchst du nicht, wenn du ein Hintergrundbild hast, dass ALLES übermalt.
christian.tietze@gmail.com - https://christiantietze.de
macOS
 

denial

BeitragSo, Aug 08, 2004 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Lösung ist eigentlich simpel...
Nutze Text und speichere deine einzelnen Chatnachrichten in einen Stringarray.
Dann schreibst du in deiner Hauptschleife die letzten 20 Einträge dieses Arrays auf den Bildschirm... Jetzt kannst noch zwei Scrollbuttons machen, durch die du bei einem Klick im Arrayindex nach oben bzw. unten springst, und schon hast du eine richtig tolle Chatansicht gebastelt Smile
 

.:_]TRaSh

BeitragSo, Aug 08, 2004 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
okay, vielen Dank für die zahlreiche schnelle Hilfe Wink Very Happy
[20:17] IMurDOOM: hm irgendwie is die mitte des viehs kaputt
[20:17] TRaSh: ein bisschen
[20:18] DarkAngel: es tut mir irgend wie leid
 

dubitat

BeitragSo, Aug 08, 2004 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube nur das das genau die lösung ist ie er nicht haben wollte, weil es ja denke ich nicht so sinnvoll ist die ganzen texte zu speichern stellt euch doch einmal vor, wenn einer den ganzen tag chattet wie viel speicher ein so großés array verwenden würde also ich denke das es nicht das gelbe vom ei is! ich habe aber im moment auch keine andere lösung außer das du vielleicht ja prüfen kannst wo print ist und das das bild dann mit nach unten rutscht...(ach das geht alles ja nicht Shocked )
Erare humanum est - Irren ist Menschlich

rambo256

BeitragSo, Aug 08, 2004 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Vll baut man einfach eine Begrenzung ein,d.h. das ältere Nachrichten einfach gelöscht werden.
Asus F53z

Das Leben ist eine reine Konkatenation...
 

denial

BeitragSo, Aug 08, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
aber echt.... also das sind wirklich ganz kleine Probleme, für die man halt n Kompromiss eingeht... Const Variable MAX_ENTRYS erstellen, ihr ne Zahl wie 100 oder mehr zuweisen, und Einträge eben entsprechend in diesem Limit halten.
 

.:_]TRaSh

BeitragMo, Aug 09, 2004 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
japp, das habe ich mir auch gedacht.. ..aber erstmal folgenden Beispiel-Code fabriziert:


Code: [AUSKLAPPEN]

Graphics 600,300,32,2
SetBuffer BackBuffer()

Font = LoadFont("Arial",14)
SetFont Font


Dim yLines$(100)



Lines = 1

While Not KeyDown(1)

   
Color 255,255,255


   For LineNr = 1 To Lines
   
      If Lines  > 19 Then yverschiebung = LineNr + (19 - Lines) + scroll
      If Lines <= 19 Then yverschiebung = LineNr + scroll
   
      If yLines(LineNr) <> "" Then Text 0, yverschiebung*15, "[nickname]: "+yLines(LineNr)

   Next
   
Color 0,0,0
   Rect 0,0,600,30

Color 255,255,255
   Line 0,15,600,15
   Text 0,0,"say:"
      
If KeyHit(28) Then
   
   FlushKeys()

   Locate 0,0
      zu_sagen$ = Input("say: ")
      
   If zu_sagen <> "" Then
   
      Lines = Lines + 1
      If Lines = 100 Then Lines = 2
      yLines(Lines) = zu_sagen
         
   EndIf

EndIf
   
   
If KeyHit(200) Then scroll = scroll + 1
If KeyHit(208) Then scroll = scroll - 1

   
   
FlushKeys() :Flip :Cls :Wend :End


Funktioniert ja alle schon ganz wunderbar (bis auf das man ins unendliche scrollen kann und dass es noch mit der Standard-Input-routine arbeitet, aber das krieg' ich schon noch hin)...

Nur im Moment ist es so, dass wenn 100 Nachrichten ausgeben wurden, dass dann "Lines" wieder auf den Standard-wert gesetzt wird und er Übergang nicht flüssig und stark zu bemerken ist.. (wenn ihr jetzt nicht rallt was ich meine, setzt "Lines" am Anfang auf 95 oder so und gebt 6 mal was ein..)

Wie kann ich das ändern? Confused
[20:17] IMurDOOM: hm irgendwie is die mitte des viehs kaputt
[20:17] TRaSh: ein bisschen
[20:18] DarkAngel: es tut mir irgend wie leid

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group