Scrollen von Text, der grösser ist als das Fenster
Übersicht

habchrBetreff: Scrollen von Text, der grösser ist als das Fenster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo miteinander
Ich habe ein kleines Problem mit einer Routine. Ich programmiere ein Text-Adventure. Es steht und läuft soweit ganz gut. Nur mit dem Textscrollen habe ich meine Probleme. Ich kann eine Zeile hinunterscrollen und dann ist nichts mehr zu sehen. Ich zeige euch den Code, den ich aus dem Programm extrahiert habe: Code: [AUSKLAPPEN] ; Scrollen eines Textes, der grösser als das Fenster ist Local zaehler%, zeile%, textanfang% Graphics 300, 200, 0, 2 Const pfeilauf = 200 Const pfeilab = 208 Const leertaste = 57 zeile = 5 textanfang = 1 Dim geschichte$(20) For zaehler = 1 To 20 Read geschichte(zaehler) Next For zaehler = 1 To 20 Text 5, (zaehler * 20) - 15, geschichte(zaehler) Next textanfang = 1 Repeat If KeyHit(pfeilauf) Then If textanfang > 1 Then ; wenn noch nicht am Anfang des Arrays Cls textanfang = textanfang - 1 ; eine Zeile zurück im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf If KeyHit(pfeilab) Then If textanfang < 20 Then ; wenn noch nicht am Ende des Arrays Cls textanfang = textanfang + 1 ; eine Zeile weiter im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf Until KeyHit(leertaste) End Data "1" Data "2" Data "3" Data "4" Data "5" Data "6" Data "7" Data "8" Data "9" Data "10" Data "11" Data "12" Data "13" Data "14" Data "15" Data "16" Data "17" Data "18" Data "19" Data "20" Um Hilfe wäre ich dankbar. Christoph |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal das an, iwie wird die Zeihle nicht richtige erhöht ![]() Mehr will ich nicht verraten ^_^ Code: [AUSKLAPPEN] ; Scrollen eines Textes, der grösser als das Fenster ist Local zaehler%, zeile%, textanfang% Graphics 300, 200, 0, 2 Const pfeilauf = 200 Const pfeilab = 208 Const leertaste = 57 zeile = 5 textanfang = 1 Dim geschichte$(20) For zaehler = 1 To 20 Read geschichte(zaehler) Next For zaehler = 1 To 20 Text 5, (zaehler * 20) - 15, geschichte(zaehler) Next textanfang = 1 Repeat If KeyHit(pfeilauf) Then If textanfang > 1 Then ; wenn noch nicht am Anfang des Arrays Cls textanfang = textanfang - 1 ; eine Zeile zurück im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf If KeyHit(pfeilab) Then If textanfang < 20 Then ; wenn noch nicht am Ende des Arrays Cls textanfang = textanfang + 1 ; eine Zeile weiter im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf Text 50,50,"Zeile =>"+zeile Until KeyHit(leertaste) End Data "1" Data "2" Data "3" Data "4" Data "5" Data "6" Data "7" Data "8" Data "9" Data "10" Data "11" Data "12" Data "13" Data "14" Data "15" Data "16" Data "17" Data "18" Data "19" Data "20" |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
habchrBetreff: Text scrollen gelöst |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ozzi789
Besten Dank für die rasche Antwort. Du hast mich auf die richtige Spur gebracht. Ich habe vergessen den Wert von zeile zurückzusetzen. Vielen Dank Christoph |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Problem für das sind wir ja hier ![]() Und dafür das dus selber rausgefunden hast bekommst du nen hüpschen Scrollbalken:P (sry mir war fad >_<) Ach und das mit dem Data kannst du weglassen;) Code: [AUSKLAPPEN] ; Scrollen eines Textes, der grösser als das Fenster ist Local zaehler%, zeile%, textanfang% Graphics 300, 200, 0, 2 Const pfeilauf = 200 Const pfeilab = 208 Const leertaste = 57 zeile = 5 textanfang = 1 Dim geschichte$(20) For zaehler = 1 To 20 geschichte(zaehler)=zaehler Next For zaehler = 1 To 20 Text 5, (zaehler * 20) - 15, geschichte(zaehler) Next textanfang = 1 Repeat If KeyHit(pfeilauf) Then zeile=0 If textanfang > 1 Then ; wenn noch nicht am Anfang des Arrays Cls textanfang = textanfang - 1 ; eine Zeile zurück im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf If KeyHit(pfeilab) Then zeile=0 If textanfang < 20 Then ; wenn noch nicht am Ende des Arrays Cls textanfang = textanfang + 1 ; eine Zeile weiter im Array For zaehler = textanfang To 20 Text 5, zeile, geschichte(zaehler) zeile = zeile + 20 ; neue Zeile Next EndIf EndIf faktor=200/20 ; 200 is die Fenster höhe, 20 ist die anzahl zeilen pos=textanfang*faktor ; die akktuelle mal den faktor = position Color 255,0,0 Text 185,pos-10,"*" Color 255,255,255 Line 180,0,180,200 Line 200,0,200,200 Until KeyHit(leertaste) End |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...=scrollbox
Da sind zwei Codes von mir ![]() Einmal für Bilder, und einmal für Text. Ich sehe gerade, es hat keine Mausunterstützung, pfui! |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group