map in datei speichern und laden (BMAX)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Freeman

Betreff: map in datei speichern und laden (BMAX)

BeitragMo, Apr 25, 2005 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

ich habe ein neues Problem. Ich will jetzt die gemalte Map in eine Datei speichern und dann laden. Das speichern klappt prima,aber leider klappt das laden nur halb.Es wird dann nur die map aufgezeichnet ,aber ohne tiles....
hier der code

BlitzMax: [AUSKLAPPEN]


Function save()
If neue_map=3 Then
If MapName$=\"\" Then MapName=\"Map1\"
mapsave=WriteFile(\"save/\"+MapName+\".txt\")
OpenFile mapsave
WriteLine(mapsave,chipset_name$)
WriteLine(mapsave,tile_X)
WriteLine(mapsave,tile_Y)
WriteLine(mapsave,map_breite)
WriteLine(mapsave,map_hoehe)
WriteLine(mapsave,T_red)
WriteLine(mapsave,T_green)
WriteLine(mapsave,T_blue)
WriteLine(mapsave,map_layer)
For mapx=0 To map_breite-1
For mapy=0 To map_hoehe-1
For mlayer=1 To map_layer
WriteLine(mapsave,map[mapx,mapy,mlayer])
Next ;Next;Next
CloseFile mapsave
EndIf
End Function


Function Load()
mapload=ReadFile(\"save/12.txt\")
OpenFile mapload
chipset_name$=ReadLine(mapload)
tileX$=ReadLine(mapload)
tileY$=ReadLine(mapload)
mapbreite$=ReadLine(mapload)
maphoehe$=ReadLine(mapload)
red$=ReadLine(mapload)
green$=ReadLine(mapload)
blue$=ReadLine(mapload)
maplayer$=ReadLine(mapload)
For mapx=0 To map_breite-1
For mapy=0 To map_hoehe-1
For mlayer=1 To map_layer
map2$[mapx,mapy,mlayer]=ReadLine(mapsave)
Next ;Next;Next

mystring1$=TileX
tile_X=mystring1.toint()
mystring2$=TileY
tile_y=mystring2.toint()
mystring3$=MapBreite
map_breite=mystring3.toint()
mystring4$=Maphoehe
map_hoehe=mystring4.toint()
mystring5$=red
T_red=mystring5.toint()
mystring6$=green
T_green=mystring6.toint()
mystring7$=blue
T_blue=mystring7.toint()
mystring8$=maplayer
map_layer=mystring8.toint()
mystring9$=map2[mapx,mapy,mlayer]
map[mapx,mapy,mlayer]=mystring9.toint()
CloseFile mapload
End Function


ich denke das Problem liegt dort, das ich erst die map als string lade und diese dann in ne integer vriable umwandle, und das wohl nich klappt..

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Alfadur

BeitragMo, Apr 25, 2005 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
könnte auch an :

mapbreite$=ReadLine(mapload)
maphoehe$=ReadLine(mapload)
red$=ReadLine(mapload)
green$=ReadLine(mapload)
blue$=ReadLine(mapload)
maplayer$=ReadLine(mapload)
For mapx=0 to map_breite-1
For mapy=0 to map_hoehe-1


schau dir mal das mapbreite ganz oben und das map_breite in der schleife an...ich denke du solltest die mapbreite die du ausliest dann in der schleife verwenden...

was das da unten mit dem ganzen string/integer hin und her soll weiß ich auch nicht. eigentlich ists doch ganz einfach ... variablen in datei reinschreiben und in selber reihenfolge wieder auslesen!

achja, und du mußt natürlich nach dem auslesen von höhe und breite der map auch das map array neu dimensionieren...
A Cray is the only computer that runs an endless loop in less than four hours.

Freeman

BeitragMo, Apr 25, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich denke für readline / writeline brauch man strings . und diese kann man leider nicht in for-to schleifen nutzen darum habe ich alle strings in integer umgewandelt, das klappt schon alles wie es soll,alle werte werden korrekt gespeichert,und geladen, uch die mapbreit und höhe, doch die tiles sind nicht drauf,wäre schön wenn einer ein beispiel für das speichern eines map-arrays vorführen könnte + wiederauslesen der map mit gemalten tiles

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

bruZard

BeitragMo, Apr 25, 2005 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein ganzes System ist irgendwie ... "für'n Arsch" ... sorry.

Benutze doch Streams, das geht super einfach:
Code: [AUSKLAPPEN]

Local myStream:TStream = ReadStream("myfile")


oder

Code: [AUSKLAPPEN]

Local myStream:TStream = WriteStream("myfile")


Schaue Dir mal die OH an unter Module Reference -> Streams

Ich muss zugeben, ich habe Deinen obigen Code nicht zur Gänze gelesen, aber die Tatsache dass Du anscheindend einfach alten BB Code neu eingetippert hast zeigt dass Du Dich nicht wirklich mit den Änderungen befasst hast.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Freeman

BeitragMo, Apr 25, 2005 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ja bruzard, du hast natürlich,allerdings stand bei mir nicht das neue system sondern eher linux im vordergrund. Das heißt ich wollte nur BB unter linux, mehr nicht. Natürlich weis ich das ich das neue System noch gar nicht wirklich nutze und mir die vielen neuen Möglichkeiten wahrscheinlich noch gar nicht richtig bewusst sind. Doch von zeit zu zeit werde ich mich damit beschäftigen, versprech ich ^^.

ps.: hat geklappt, hab ne Variable vergessen zu laden, jetzt geht es. thx





FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group