iso map ladeproblem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

sector

Betreff: iso map ladeproblem

BeitragSa, März 06, 2004 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe hier das Problem da sich zwar die map im .lev format speichern kann aber ich kann sie dann per load nicht wieder laden, dann kommt Stream does not exist. Ich find den fehler nicht....habe closefile im savebereich abgeschaltet weil sonst beim speichern schon der Stream fehler kommt, hoffe jemand kann helfen. Es handelt sich um ne isomap..falls das was hilft.

Code: [AUSKLAPPEN]

 If button=2 Then
  levelsave=WriteFile(Eingabe$(1,1,"Savedatei: ")+".lev")
  WriteLine levelsave,bigX
  WriteLine levelsave,bigY
  For e=1 To 2
   For X=1 To bigX
    For Y=1 To bigY
     WriteByte levelsave,Level$(X,Y,e)
    Next
    WriteLine levelsave,""
   ;CloseFile levelsave                     
   Next
  Next
 End If
 If button=1 Then
  levelload=ReadFile(Eingabe$(1,1,"Loaddatei: ")+".lev")
  bigX=ReadLine(levelload)
  bigY=ReadLine(levelload)
  For e=1 To 2
   For X=1 To bigX
    For Y=1 To bigY
     Level$(X,Y,e)=ReadByte(levelload)
CloseFile levelload
    Next
   Next
  Next
 End If


Danke sector

Ctuchik

BeitragSa, März 06, 2004 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist doch klar, du musst die Datei wieder schließen sonst kann sie nicht nochmal geöffnet werden!
Allerdings solltest du das nicht in der For-Schleife machen, weil die Schleife ja mehrmals durchlaufen wird und wenn die Datei dann schon zu ist kannst du natürlich nciht mehr reinschreiben!

Code: [AUSKLAPPEN]

If button=2 Then
  levelsave=WriteFile(Eingabe$(1,1,"Savedatei: ")+".lev")
  WriteLine levelsave,bigX
  WriteLine levelsave,bigY
  For e=1 To 2
   For X=1 To bigX
    For Y=1 To bigY
     WriteByte levelsave,Level$(X,Y,e)
    Next
   Next
  Next
  CloseFile levelsave                     
 End If
 If button=1 Then
  levelload=ReadFile(Eingabe$(1,1,"Loaddatei: ")+".lev")
  bigX=ReadLine(levelload)
  bigY=ReadLine(levelload)
  For e=1 To 2
   For X=1 To bigX
    For Y=1 To bigY
     Level$(X,Y,e)=ReadByte(levelload)
    Next
   Next
  Next
  CloseFile levelload
 End If


So sollte es gehen!

EDIT: Ich hab noch das 'WriteLine levelsave,"" ' rausgenommen, weil cih nicht weiss wozu es gut sein soll!

mfG Ctuchik
  • Zuletzt bearbeitet von Ctuchik am Sa, März 06, 2004 18:02, insgesamt einmal bearbeitet

sector

BeitragSa, März 06, 2004 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke das wars:)

Vertex

BeitragSa, März 06, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der Code den Du wolltest:
Code: [AUSKLAPPEN]

Global Breite, Hoehe
Breite = 10 : Hoehe = 20
Dim Map(Breite, Hoehe, 3)

Function saveMap(fileName$)
   Local Stream, Ebene, X, Y
   
   Stream = WriteFile(fileName$)
   
   WriteShort Stream, Breite
   WriteShort Stream, Hoehe
   
   For Ebene = 0 To 3
      For X = 0 To Breite-1
         For Y = 0 To Hoehe-1
            WriteByte Stream, Map(X, Y, Ebene)
         Next
      Next
   Next
   
   CloseFile Stream
End Function

Function loadMap(fileName$)
   Local Stream, Ebene, X, Y
   
   Stream = ReadFile(fileName$)
   
   Breite = ReadShort(Stream)
   Hoehe  = ReadShort(Stream)
   Dim Map(Breite, Hoehe, 3)
   
   For Ebene = 0 To 3
      For X = 0 To Breite-1
         For Y = 0 To Hoehe-1
            Map(X, Y, Ebene) = ReadByte(Stream)
         Next
      Next
   Next
   
   CloseFile Stream
End Function
vertex.dreamfall.at | GitHub

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group