Anzahl von einem type speichern und laden ?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

WEBLink

Betreff: Anzahl von einem type speichern und laden ?

BeitragSa, Sep 02, 2006 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Folgendes:

Code: [AUSKLAPPEN]
If mousedown1 Then


img.imga=New imga
img\x=vierX - sk
img\y=vierY - sk2
img\tileIndex = AZahlE
            
Tileanzahl = Tileanzahl + 1
      

EndIf


dies erstellt ein Type. Mann kann jetzt so viele Bilder einfügen wie man möchte.


.Code: [AUSKLAPPEN]
 laden
Locate 163, 519
kartenname$ = Input$("")
fileout = OpenFile("Maps\"+kartenname$+".map")

imga = ReadLine (fileout)
AZahlE = ReadLine (fileout)
Ebene1Chip = ReadLine (fileout)

For img.imga = Each imga

img\x = ReadLine (fileout)
img\y = ReadLine (fileout)
img\tileIndex = ReadLine (fileout)

Next


CloseFile fileout
ladenan = 0

Gosub restart



. speichern
Locate 163, 519
kartenname$ = Input$("")

fileout = WriteFile("Maps\"+kartenname$+".map")


WriteLine fileout, imga
WriteLine fileout, AZahlE
WriteLine fileout, Ebene1Chip

For img.imga = Each imga

WriteLine fileout, img\x
WriteLine fileout, img\y
WriteLine fileout, img\tileIndex
               
Next

CloseFile fileout
Speichernan = 0
Gosub back


Hier ist mein code fürs speichern und laden.

Wenn man den Editor nicht schließt funktioniert alles einwandfrei. Ich kann neue Tiles hinzufügen alte löschen usw. und wenn ich die karte lade sieht alles so aus wie ich sie gespeichert hatte.

Schließe ich den Editor und öffne ihn wieder und lade dann erscheint nichts auf dem Bilde.

zeiche ich so viele Tiles wie ich beim speichern gezeichnet hatte und lade wieder erscheint meine gespeicherte karte nahezu perfekt.
 

antome

!!! gesperrt !!!

BeitragSa, Sep 02, 2006 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
So auf die schnelle fällt mir auf das du readline und writeline benutzt, versuche mal writeint und readint
antome

WEBLink

BeitragSa, Sep 02, 2006 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, hatte ich um in die gespeicherten Dateien schauen zu können. In denen sieht es folgendermaßen aus




0
1
100 = x
360 = y
1
140
360
1
160
360
1
200
360
1
220
360
1
240
360
1
300
360
1
320
360
1
360
360



Wie man Sieht werden ganz fein alle Tiles gespeicht die gezeichnet werden. Aber komischerweise beibt die anzahl immer 1
 

antome

!!! gesperrt !!!

BeitragSa, Sep 02, 2006 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm nicht imga, ich denke du benutzt den Namen des Types
baue einen Zähler ein um deine Einträge zu zählen und benutze den.
antome

WEBLink

BeitragSo, Sep 03, 2006 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie würde das letztendlich aussehen?

danke schonmal

Schranz0r

BeitragSo, Sep 03, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal da:

Zitat:
If mousedown1 Then ;<-----------------kann net gehen, weil du () vergessen hast. Mach mal Mousehit(1)


img.imga=New imga
img\x=vierX - sk
img\y=vierY - sk2
img\tileIndex = AZahlE

Tileanzahl = Tileanzahl + 1


EndIf


Grüße Schranz0r

Ich habs da mal so gemacht, ich häts ja ganz in deinen code angepast, aber ich hab ja net alles....


Code: [AUSKLAPPEN]
Graphics 800,600,0,2

Global tileanzahl
Global tilemax = 10


Type imga
  Field x
   Field y
   Field tileIndex
End Type

Repeat

If MouseHit(1) Then
img.imga=New imga
img\x=vierX - sk
img\y=vierY - sk2
img\tileIndex = AZahlE
           
Tileanzahl = Tileanzahl + 1


Print Tileanzahl

EndIf
Until KeyHit(1)


PS deine HP geht net ^^
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Zuletzt bearbeitet von Schranz0r am So, Sep 03, 2006 18:42, insgesamt einmal bearbeitet
 

antome

!!! gesperrt !!!

BeitragSo, Sep 03, 2006 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an du erstellt eine TileMap
immer wenn du ein Tile einfügst:

Eine Variable/Integer benutzen
zähler = zähler + 1

wenn du ein Tile löschst:
zähler = zähler - 1

Den Zähler dann als erstes abspeichern
WriteInt Datei, Zähler

Zuerst deine HeaderDaten laden:

Datei = Readfile(file$)
zähler = ReadInt(atei)
andere Headerdaten

Dann eine Schleife erstellen und so oft ein neues Type erstellen
oder die alten Types überschreiben bis der Zähler zuende ist
For i = 0 to Zähler

Next

oder ohne Zähler:

While not Eof(Datei)

Wend

Immer vorausgesetzt du hast alle Daten welche nicht Tiles sind vorher im Header drin und schon ausgelesen
antome

WEBLink

BeitragSo, Sep 03, 2006 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Schranz0r

Ups, kannst ja nicht wissen mousedown1 ist eine Variable der ich am Anfang des Codes mousedown(1) zuweise. Der Grund: Es gab mal einen Bug das die Maus nicht mehr reagiert(auch wenn man den speicher löschte), dies war damals die Möglichkeit wie man es Umgehen konnte. (damals ca 1,5 Jahren (als ich das letzte mal Programmierte). Ja die Homepage ist genauso alt Smile muss mal wieder ne neue machen.

@ antome

Jo das könnte funzen werd ich gleich mal versuchen. Ein zähler is ja schon eingebaut = Tilesanzahl.

MfG

WEBLink

BeitragSo, Sep 03, 2006 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, ich hab grad was gelesen das mich wahrscheinlich dazu bringen wurd den Editor wieder mit Dim zu machen.

Zitat:

Hier wird die Benutzung nicht empfohlen:

1) Bei hoher Objektanzahl (über 10.000) wird die Benutzung nicht empfohlen. Dies wirkt sich sehr negativ auf den Speicher aus (dazu später mehr). Hier wird entweder DIM oder BANK empfohlen.

2) Bei statischer Objektanzahl, wo während des Programmablaufs niemals die Anzahl geändert wird. Hier wird auch entweder DIM oder BANK empfohlen. Ein großer Fehler ist z.B. die Verwaltung von Karteninformationen (Map) mit Types.

----

Wenn ich Punk 2 lese und den letzten Satz. Joar...

Denn zuletzt hing ich daran das die Tiles zwar beim laden da waren aber da ich auch die Grafiken für einer Ebene in dem Type hatte. Ging das auseinaderhalten der Grafiken nicht. Naja, komischerweise aber wieder wenn ich einige Tiles gemalt hatte OMG

Nur so ne Frage, kann mir jemand einen Editor zeigen der rein auf types beruht?

ChaosCoder

BeitragDi, Sep 05, 2006 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
also entweder bin ich ein bissl doof oder ich hab einfach gleich mal den fehler gefunden. also, wenn du den editor neu startest und ne map lädst hast du doch gar keine type objekte denen das, was du aus der datei ausliest zu geordnet werden kann! also lösch erst alle vorhandenen objekte und erstelle dann genau soviele, wie in der datei auch abgespeichert sind. probier den ma aus:
Code: [AUSKLAPPEN]
 laden
Locate 163, 519
kartenname$ = Input$("")
fileout = OpenFile("Maps\"+kartenname$+".map")

imga = ReadLine (fileout)
AZahlE = ReadLine (fileout)
Ebene1Chip = ReadLine (fileout)

for img.imga = Each imga
 delete img.imga
next

while not eof(fileout)

img=new imga
img\x = ReadLine (fileout)
img\y = ReadLine (fileout)
img\tileIndex = ReadLine (fileout)

wend


CloseFile fileout
ladenan = 0

Gosub restart
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

WEBLink

BeitragMi, Sep 06, 2006 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne, Sry. Er findet dann die img nicht mehr. selbst wenn nich den editor an lasse.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group