writeint wird überlesen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

da_poller

Betreff: writeint wird überlesen?

BeitragMi, Jul 30, 2008 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
folgender code lässt anscheinend die ersten 2 readInt aus.
wenn ich die 2 for schleifen auskommentiere befinden sich die besagten int in der datei so wie sie sollen

woran kann das liegen? entzieht sich irgendwie meiner logik xD

Code: [AUSKLAPPEN]
datei=WriteFile(CurrentDir()+"\map\"+name$+".map")
   WriteInt(datei,breite)
   WriteInt(datei,hoehe)
   For x=0 To breite-1
      For y=0 To hoehe-1
         WriteInt(datei,map(x,y))
      Next
   Next
   For x=0 To breite-1
      For y=0 To hoehe-1
         WriteInt(datei,mapcollision(x,y))
      Next
   Next
   CloseFile datei

Abrexxes

BeitragMi, Jul 30, 2008 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal :

Code: [AUSKLAPPEN]
datei=WriteFile(CurrentDir()+"\map\"+name$+".map")
   WriteInt datei,breite
   WriteInt datei,hoehe
   For x=0 To breite-1
      For y=0 To hoehe-1
         WriteInt datei,map(x,y)
      Next
   Next
   For x=0 To breite-1
      For y=0 To hoehe-1
         WriteInt datei,mapcollision(x,y)
      Next
   Next
   CloseFile datei


Was anderes sehe ich da auch nicht

Hier meine Funktion zum vergleich (die funktioniert) halt OHNE Klammern.

Code: [AUSKLAPPEN]
Function savelevel() ;dat level speichern
 level = WriteFile ("levels\"+aclevel)
   
      WriteByte level,fileid ;  version
      WriteByte level,elec ;  strom
      WriteByte level,diamonds ;  diamanten
      WriteByte level,bombs
      WriteByte level,reserved
      WriteByte level,reserved
      WriteByte level,deadzone
      WriteByte level,event
      WriteByte level,musik
      WriteByte level,effekt
      WriteByte level,tilesetID
      WriteByte level,objectID
      WriteByte level,switchID
      WriteByte level,railID
      WriteByte level,reserved ; position 14 offset
      WriteByte level,reserved
      WriteByte level,reserved
      WriteByte level,reserved
      WriteByte level,levelsizeX
      WriteByte level,levelsizeY ;position 19 offset
 
 p = 1   
 
 For r = 1 To 5
      tileX = 0 : tileY = 0
            For n = 1 To levelsizeY
                  For i = 1 To levelsizeX
                                          If p = 1 Then dat = layer1 (tileX,tileY)
                                          If p = 2 Then dat = layer2 (tileX,tileY)
                                          If p = 3 Then dat = layer3 (tileX,tileY)
                                          If p = 4 Then dat = layer4 (tileX,tileY)               
                                          If p = 5 Then
                                               dat = layer5 (tileX,tileY)      
                                                      If dat = 7 Then dat = 0
                                                      If dat = 9 Then dat = 0
                                          EndIf
                                    WriteByte level,dat
                        tileX =tileX +1
                  Next
                  tileX =0 : tileY = tileY +1
            Next
            p = p + 1
Next
   
   tileX = 0 : tileY = 0 dat = 0 ;teleporterauserhalb der zone raus
            For n = 1 To levelsizeY
                  For i = 1 To levelsizeX
                                          dat = layer5 (tileX,tileY)
                                          If dat = 7  Or dat = 9 Then
                                          tarX = layertx(tileX,tileY)
                                          tarY = layerty(tileX,tileY)
                                          If tarX >levelsizeX Then layer5 (tileX,tileY) = 0
                                          If tarY >levelsizeY Then layer5 (tileX,tileY) = 0
                                          EndIf
                        tileX =tileX +1
            Next
            tileX =0 : tileY = tileY +1
      Next         
            
            
            
tileX = 0 : tileY = 0 dat = 0 ;teleporter schreiben
            For n = 1 To levelsizeY
                  For i = 1 To levelsizeX
                                          dat = layer5 (tileX,tileY)
                                          If dat = 7 Then
                                          dat = 201
                                          tarX = layertx(tileX,tileY)
                                          tarY = layerty(tileX,tileY)
                                          WriteByte level,dat
                                          WriteByte level,tileX
                                          WriteByte level,tileY
                                          WriteByte level,tarX
                                          WriteByte level,tarY
                                          EndIf
                                          
                                          If dat = 9 Then
                                          dat = 202
                                          tarX = layertx(tileX,tileY)
                                          tarY = layerty(tileX,tileY)
                                          WriteByte level,dat
                                          WriteByte level,tileX
                                          WriteByte level,tileY
                                          WriteByte level,tarX
                                          WriteByte level,tarY
                                          EndIf
                  tileX =tileX +1
            Next
            tileX =0 : tileY = tileY +1
      Next

                  
CloseFile level
 
 End Function


cu

Eingeproggt

BeitragMi, Jul 30, 2008 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn die Datei überhaupt erstellt wird, sollts gehen. Ich hätte an dem Code nämlich nur den Backslash nach CurrentDir() zu kritisieren, da der zurückgegebene Pfad mit "\" endet (Bei mir in B3D v1.99 zumindest)

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group