Bild scrollt nach vielen Print-anwendungen mit..
Übersicht

.:_]TRaShBetreff: Bild scrollt nach vielen Print-anwendungen mit.. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? ![]() 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? ![]() |
||
[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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ä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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
.:_]TRaSh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay, vielen Dank für die zahlreiche schnelle Hilfe ![]() ![]() |
||
[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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
Erare humanum est - Irren ist Menschlich |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? ![]() |
||
[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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group