jumpnrun-scrolling

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

aasgeier

Betreff: jumpnrun-scrolling

BeitragSo, Jan 11, 2004 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
yo hi!
ich bin grad dabei ein jump n run zu coden. den level, der so hoch wie eine bildschirmseite, aber viel breiter ist (also gescrollt werden muss), will ich über eine datei laden. wenn ich dann beim test im spiel den level scrollen, also die figur, die immer in der mitte des bildschirms sein soll, seitlich "bewegen" will, kommt eine fehlermeldung: "array index out of bounds".
das ist der code (sachen wie menü, sound etc. hab ich hier mal weggelassen):

Code: [AUSKLAPPEN]

Graphics 1024,768
SetBuffer BackBuffer()
Dim level$(23,31)

(...unwichtiges...)

leveldatei = ReadFile("blocks\level2.dat")
For zeile = 0 To 23
 a$ = ReadLine(leveldatei)
  For spalte = 0 To 31
   level$(zeile,spalte) = Mid$(a$, (spalte*4) +1, 3)
  Next
Next
CloseFile leveldatei
offset = 0

Repeat
Cls

For zeile = 0 To 23
 For spalte = 0 To 31
     
  If KeyDown(203) And player(1) = "3" Then
   If offset > 0 Then offset = offset - 1
  EndIf
  If KeyDown(205) And player(1) = "4" Then
   If offset < 59 Then offset = offset + 1
  EndIf
   
  quadrat$ = level$(zeile,spalte + offset)
  bmp$ = Left$(quadrat,1)
  bmpzeile = Asc( Mid$(quadrat,2,1) ) - 65
  bmpspalte = Asc( Mid$(quadrat,3,1) ) - 65
   
  If bmp$ = "a" Then
    DrawImageRect blocks_gfx,spalte*32,zeile*32,64,64,32,32 ;Graaas
  EndIf
 
  (Hier stehen noch weitere If-Anweisungen, die der letzten bis auf
  die Parameter bei drawimagerect und dem "bmp$ = "a"" gleichen)

 Next
Next

(...unwichtiges...)

Delay 8
Flip
Until KeyHit(1)
End


wo liegt der fehler?

für hilfe wäre ich sehr dankbar.

aasgeier
 

Edlothiol

BeitragSo, Jan 11, 2004 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
level$(zeile,spalte + offset)

Wenn Offset > 0 und spalte = 31 ist, dann gibts wahrscheinlich einen Fehler.
Du musst Offset zur Y - Position des Bildes addieren, das du zeichnest.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 11, 2004 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ich denke das es hier dran liegt
Code: [AUSKLAPPEN]
 

quadrat$ = level$(zeile,spalte + offset)
; könnte über 31 werden und dann Fehler
[BB2D | BB3D | BB+]

Jolinah

BeitragMo, Jan 12, 2004 2:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Vergrössere einfach dein Array um eins. Also da wo die X Tiles drin sind.

Weil man zeichnet immer ein Tile über den Bildschirm raus, weil das ja gescrollt werden muss. Jedoch darf sich der ScrollWert nicht mehr erhöhen wenn du am Ende der Map bist, sonst kommen weiterhin solche Fehler.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group