konsolenproblem... (neu) - erledigt...
Übersicht

![]() |
darthBetreff: konsolenproblem... (neu) - erledigt... |
![]() Antworten mit Zitat ![]() |
---|---|---|
(neues prob ganz unten... letzter beitrag)
hi, ich hab n kleines problem mit meiner konsole (text eigeben - auf bildschirm anzeigen...) das ganze läuft so: Code: [AUSKLAPPEN] key=GetKey() ;gedrückte taste erhalten
If key>=32 And key<=255 Then ;ascii von buchstaben If x<360 Then ;nur wenn zeile nicht voll cline$=cline$+Chr(key) ;zeichen speichern EndIf EndIf If key=13 ;enter = abschicken - zeile speichern showmess=1 anz=anz+1 Dim message$(anz) message$(anz)=cline$ If cline$="exit" Then Cls showmess=0 show_con=0 EndIf If cline$="quit" Then End EndIf cline$="" End If Text 75,580,cline$ If showmess=1 Then ;text anzeigen For show=1 To anz Color 255,0,0 Text 10,zeile*15,nic$+":" Text 100,zeile*15,message$(show) zeile=zeile+1 Next WriteLine aufnahme,message$(anz) zeile=0 showmess=0 EndIf Flip => natürlich noch in einer hauptschleife... so... jetzt zu meinem problem: 1. scheinbar schreibt er nur immer die neuste message$ auf den schirm (sieht man wenn man vorher ein cls zwischenschaltet) - wieso??? (er sollte doch immer message$(show) also von message von 1 bis anzahl anzeigen?!?) 2. wenn 15 zeilen da sind (also anz>=15) soll er die alte immer eins raufrutschen... ich habs mit Code: [AUSKLAPPEN] if anz>=15 then zeile=zeile-1
versucht... ging aber nicht (da ja nur die letzte zeile immer neu angezeigt wird...) wie kann ich das realisieren? |
||
Diese Signatur ist leer. |
- Zuletzt bearbeitet von darth am Do, Sep 29, 2005 20:49, insgesamt 2-mal bearbeitet
![]() |
Klip |
![]() Antworten mit Zitat ![]() |
---|---|---|
So hab ich es bei meinem Spiel gemacht. Sorry, wegen Umformatierung ist der Code unten was durcheinander. Hoffe, es hilft dir trotzdem. Sind zwar nur 7 Zeilen und vielleicht etwas umständlich, aber es geht.
BlitzBasic: [AUSKLAPPEN] Function console_system() ; cursor, settings, commands, [...] |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich könnt wetten das es an dieser Zeile liegt: BlitzBasic: [AUSKLAPPEN]
grüße |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Beim redimensionieren wird jedenfalls der Inhalt des Dimensionsfeldes komplett gelöscht.. Das könntest Du verhindern, wenn Du Dir ein zweites temporäres Dimensinsfeld anlegst, die Daten zwischenspeicherst und dann nach der Redimensionierung überträgst.
Aber ganz ehrlich, sowas würd ich doch lieber gleich mit Types lösen. ![]() ![]() |
||
![]() |
darthBetreff: .. |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
so, erstmal danke für die antworten ^^ @klip: thx =) muss den code erstmal durcharbeiten, hab ihn erst überflogen... [edit] so... jetzt hab ich ihn durch ^^ du machst es mit 7 variabeln, und nicht mit einem arrey, dann überspeicherst du eifach von hinten nach vorne, auch ne möglichkeit =) @david/ava: hmm... mist =S hab ich gar nicht gewusst... dachte der würde einfach am ende eins anhängen... aber wenn das so ist muss ichs wohl ändern... @ava: types sind mir n rätsel... ^^ bin zu faul irgend n tut darüber zu machen... mit arreys gings bisher recht gut... so... ich hab mir jetzt am anfang einen 1000 arrey angelegt, und eine neue variabel, die aktiv wird, wenn die anzahl grösser als 10 ist, die wird dann immer eins kleiner, deshalb werden immer mehr zeilen ausserhalb des schirms gezeigt... ist nicht perfekt =) wenn man mehr als 1000 sachen geschrieben hat wird ne fehlermeldung kommen... naja, n anfang ist es schonmal... sobald ich mehr lust dazu hab als jetzt, werd ichs mit klips methoder versuchen... aufwändiger aber einfacher zu verstehen ^^ thx an alle |
||
Diese Signatur ist leer. |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN] Graphics 640, 480 LaLaLa, höre auf Tante Ava, tu Dir selbst einen Gefallen und lerne Types - die sind doch nun wirklich nicht soo kompliziert! ![]() ![]() Oder bleibe bei Deinen Arrays, wenn es denn sein muss.. aber Klips Lösung ist schrecklich unelegant, daran solltest Du Dich nicht orientieren. |
||
![]() |
darthBetreff: .. |
![]() Antworten mit Zitat ![]() |
---|---|---|
falls es noch jemanden interessiert, ich habe das ganze jetzt mit 2 sich austauschenden arreys gemacht, dann gibt es keine arrey-überlastung...
code: Code: [AUSKLAPPEN] If key=13
showmess=1 anz=anz+1 Dim messagesave$(anz) For writedown=1 To (anz-1) messagesave$(writedown)=message$(writedown) Next Dim message$(anz) For writein=1 To (anz-1) message$(writein)=messagesave$(writein) Next message$(anz)=cline$ If cline$="exit" Then key=10 EndIf If cline$="quit" Then End EndIf cline$="" End If @ava: ^^ ich werd mal versuchen types zu lernen... neues prob: ich möchte das ganze jetzt speichern lassen, in einem textfile... geht eigentlich alles, nur macht er jedesmal ein neues ^^ ... ich möchte dass er einfach unten anhängt... habs gelöst... so: Code: [AUSKLAPPEN] aufnahme=ReadFile("text.txt")
If aufnahme=False Then aufnahme=WriteFile("text.txt") ;sicherung... sonst mav Else Dim messageread$(1000) ;dim erstellen... grösse?!? While Not Eof(aufnahme) readout=readout+1 messageread$(readout)=ReadLine(aufnahme) ;text von altem file speichern... Wend aufnahme=WriteFile("text.txt") ;altes file überschreiben For readin=1 To readout WriteLine aufnahme,messageread$(readin) ;text aus altem ins neue schreiben Next EndIf alles was ich jetzt noch bräuchte, wäre vllt. die grösse des messageread$() dim... sonst gibts dort noch n arrey überlastung... aber das ist halb so wild... werd ich schon noch irgendwie lösen... |
||
Diese Signatur ist leer. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group