Seite 6 von 7

Verfasst: 02.09.2007 10:45
von Fusselohr
Achso, ich hab mir grade mal nen Speicher Requester zusammengebastelt ^^. Aber ich hab noch 2 Fragen.

Wenn ich die Map speichere und ein Tile mit der ID 22 hab liest der dann nicht 2 mal die 2 anstatt 22?

Und ich würde gerne aus nem großen Bild mit vielleicht 40 Tiles drauf, jedes einzelne auslesen... wie stelle ich das an ?

Mit freundlichen Grüßen,
Fusselohr

Verfasst: 02.09.2007 14:51
von Kaeru Gaman
> Wenn ich die Map speichere und ein Tile mit der ID 22 hab liest der dann nicht 2 mal die 2 anstatt 22?

wenn du natürlich die IDs als ZAHLENSTRINGS hintereinanderweg speicherst, würde das passieren.
aber das solltest du eben nicht machen, das ist unfug.

du speicherst deine IDs als Bytes oder Longs.
jedes byte kann werte von 0-255 annehmen, mehr tiles solltest du vorerst nicht brauchen.

löse dich von der Text-Idee.
es ist absolut unsinnig, solche daten in klarschrift zu speichern.

Verfasst: 02.09.2007 16:43
von Zaphod
Und ich würde gerne aus nem großen Bild mit vielleicht 40 Tiles drauf, jedes einzelne auslesen... wie stelle ich das an ?
Am einfachsten mit ClipSprite.

Verfasst: 03.09.2007 09:24
von Fusselohr
@ Kaeru :
löse dich von der Text-Idee.
es ist absolut unsinnig, solche daten in klarschrift zu speichern.
Hab ich schon ^^, habs vergessen zu erwähnen :D. Also heißt das wenn ichs in ganz normal in Longs speicher liest er auch alles richtig aus, oder ?


Danke an euch zwei ^^. Jetzt kann ich meinen Laden Requester machen. Und danach ein Chipset basteln <) .

EDIT : Och Nö, ich schaff das mit dem Laden einfach nicht... irgendwie lädt ders nicht ^^.

Code: Alles auswählen

If ReadFile(Laden,Str(MapIDH)+Str(MapIDZ)+Str(MapIDE)+ ".map")
TileIDs = ReadLong(Laden)
  For SY=0 To 12
    For SX = 0 To 14
      DisplaySprite(100+TileIDs, 20 + 16*SX - FineX , 20 + 16*SY - FineY )
    Next
  Next
EndIf
Kann mir jemand sagen was in dem Code nicht stimmt ?

Verfasst: 03.09.2007 11:07
von Kaeru Gaman
du liest nur ein einziges long...

du brauchst zwei schleifen die so groß sind wie deine komplette map (nicht wie dein screen)
und innerhalb der schleife liest du die longs aus dem file und schreibst sie in ein array.

die laderoutine springst du nur ein einziges mal an.
die muss komplett getrennt sein von der darstellung.

die darstellungsschleife durchläufst du in jedem frame, als 30-100 mal pro sekunde,
darin darf kein filezugriff stehen.

Verfasst: 03.09.2007 13:31
von Fusselohr

Code: Alles auswählen

If OpenFile(Laden,Str(MapIDH)+Str(MapIDZ)+Str(MapIDE)+ ".map")
For x=0 To 103 ; Mapgröße X
  For y=0 To 103  ; Mapgröße Y
    Map(x,y) = ReadLong(Laden) 
  Next
Next
CloseFile(Laden)
Dann müsste es so aussehen, oder ?

Verfasst: 03.09.2007 13:51
von Kaeru Gaman
:allright:

jawoll, er hat es.
the rain in spain stays mainly in the plain

Verfasst: 03.09.2007 14:09
von Fusselohr
Juhuu ^^. Nun hab ich das Speichern und Laden in den Editor eingebaut ^^.
Jetzt kommt das "Neue Map" Menü dran <)

Verfasst: 03.09.2007 15:24
von Vermilion
Au man, wird mal Zeit, dass jemand mal ein Tile Engine Tutorial schreibt. -.- Ich habe jedenfalls keinen gefunden, kenne mich damit aber gut aus, würde es gerne machen, aber derzeit keine Zeit! :P

Verfasst: 03.09.2007 15:29
von Kaeru Gaman
mir ist das in Fleisch und Blut, aber ich hab nicht den Nerv mich hinzusetzen und ein Essay zu schreiben... :|