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

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

habchr

Betreff: Scrollen von Text, der grösser ist als das Fenster

BeitragMo, Nov 24, 2008 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Nov 24, 2008 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal das an, iwie wird die Zeihle nicht richtige erhöht Wink
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
 

habchr

Betreff: Text scrollen gelöst

BeitragMo, Nov 24, 2008 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Nov 24, 2008 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Problem für das sind wir ja hier Smile

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

BeitragMo, Nov 24, 2008 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...=scrollbox

Da sind zwei Codes von mir Surprised
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group