AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eine komplette Map in einer Datei unterbringen?

Eine komplette Map in einer Datei unterbringen?

Ein Thema von klomann3 · begonnen am 3. Sep 2004 · letzter Beitrag vom 24. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2   
klomann3

Registriert seit: 29. Aug 2004
16 Beiträge
 
#1

Eine komplette Map in einer Datei unterbringen?

  Alt 3. Sep 2004, 19:57
Hallo,
Ich progge gerade eine Art RPG-Maker und mir fällt das speichern und laden der Maps im Map-Editor wirklich schwer.
Deswegen wollt ich in meiner Verzweiflung mal hier nachfragen wie man eine Map mit samt Tiles in eine Datei unterbringt , die möglichst klein gehalten wird.
Diese muss dann nachher auch geladen werden , können.
Bitte helft mir , ich weiß echt nich weiter ,

Gruß
Marvin
  Mit Zitat antworten Zitat
Thebe

Registriert seit: 25. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 3. Sep 2004, 21:37
Wie sollen wir Dir helfen bei der Optimierung der Map Größe z.b. wenn wir gar nicht wissen in welchem Format Du sie abspeicherst, was in den Maps alles drinne stehen muss etc ? Was sollen wir Dir auf deine Frage antworten bis auf "keine Ahnung" wenn Du keine Infos rausrückst ?
  Mit Zitat antworten Zitat
klomann3

Registriert seit: 29. Aug 2004
16 Beiträge
 
#3

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 3. Sep 2004, 21:49
Was soll ich denn an Infos geben?
Bin ich Gott?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 3. Sep 2004, 22:19
Zitat von klomann3:
Bin ich Gott?
Gott wohl nicht, aber der einzige, der uns nähere Infos geben kann, wie das aussehen soll.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
klomann3

Registriert seit: 29. Aug 2004
16 Beiträge
 
#5

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 3. Sep 2004, 22:47
Ich habs mir so gedacht , das ich die Tiles die ich auf die Map setze irgendwo speichere , wo sollt ihr mir sagen.
Dann soll alles in einer Texdatei ähnlichen Datei z.B. so gespeichert werden:

Code:
.........................
.......---..................
........................
.........................
...........-..............
und so weiter , die Punkte sollen die einzelnen Tiles darstellen.
Würde es eine möglichkeit geben das das ganze ungefähr so gespeichert wird?
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 4. Sep 2004, 18:02
ja ich machte das bei meinen spielen immer mit der procedure:
Delphi-Quellcode:
procedure TBO.LoadLevel(FileName:TFileName);
var
  x,i,k,z:Integer;
  Level:TStringList;
  Key, Value, MusicExt,MusicDir,str:String;
begin
  NewGame;
  Level:=TStringList.Create;

  if FileExists(FileName) = True then
    Level.LoadFromFile(FileName)
  else begin
    ShowMessage('Level Datei: ' + #13 + FileName + #13 + 'Wurde nicht gefunden !');
    Exit;
  end;


  with Level do begin
    for i:=IndexOF('Level Optionen {')+1 to Count-1 do begin
      if Level.strings[i] = '}then break;
      Key:=GetToken(Strings[i],'=',1);
      Value:=Trim(GetToken(Strings[i],'=',2));


      if Pos('MusicExt',Key) > 0 then MusicExt:=Value;
      if Pos('MusicDir',Key) > 0 then MusicDir:=Value;
      if Pos('MusicFiles',Key) > 0 then begin
        MusikListe.Clear;
        if MusicDir = '~then MusicDir:='default\music\';
        for k:=1 to NumToken( Value,',') do begin

          if UpperCase(ExtractFileExt(GetToken(Value,',',k))) = 'then
            MusikListe.Add( GetExeDir + MusicDir + GetToken(Value,',',k) + '.' + MusicExt )
          else
            MusikListe.Add( GetExeDir + MusicDir + GetToken(Value,',',k))

        end;
      end; // MusicFiles

      if Pos('Bälle',Key) > 0 then begin
        for k:=1 to StrToint(Value) do begin
          ADD_BALL(random(MapX*MapS ),random(MapY*mapS ));
        end;
      end; // Bälle

      if Pos('Gegner',Key) > 0 then begin
        AddG(StrToInt(Value));
        maxIG:=StrToInt(Value);
      end;

      if Pos('ImageDir',Key) > 0 then begin
        if Pos('~',Value) > 0 then
          ImageDir:=GetExeDir + 'default\image'
        else begin

          if FileExists(ExtractFileDir(FileName) + '\image\images.txt') then
            ImageDir:=ExtractFileDir(FileName) + '\image'
          else
            ImageDir:=GetExeDir + 'default\image';
        end;
      end;


    end; // Level Optionen

    z:=0; i:=0; x:=0; str:='';
    z:=IndexOF('Map {')+1;
    Randomize;
    for i:=z to Count-2 do begin
      str:=strings[i];
      for x:=0 to MapX do begin
        if str[x+1] = 'Rthen
          CreateStein(x,(i-z),random2(-1,3))
        else
          if str[x+1] = 'Kthen
            CreateStein(x,(i-z),none)
          else
            CreateStein(x,(i-z),StrToInt(str[x+1]));
      end;
    end;
  end;

  Music.ClearMusik;
 // for i:=0 to MusikListe.Count -1 do
  // Music.AddMusik(MusikListe.Strings[i]);

 // music.PlayMusik(MusikListe.strings[random(MusikListe.count-1)],-1);
 // Music.TInit;

end;
du musst sie noch anpassen und die textdatei sieht dann so aus:
Zitat:
Level Optionen {
MusicExt = mid
MusicDir = ~
MusicFiles = 00,01,02,03,04,05,06,07,08,09
Bälle = 0
Gegner = 6
ImageDir = ~
}

Map {
104022030211234K222332321230321332141100
420320443031333K040330444231343440444242
114023130312141K012000201020233213432232
3332114300111132324421244222240243332041
2311241104304433222201314413341310233022
0032043440010244121404022134233143302341
1104312122212323034041030022404121404122
}
die zahelen sind textur indexes und stellen im moment auch nur ein objekt typ da um mehr objekttypen definieren zu können musst du einfach hinter den textur index einfach noch ne zahlschreiben und es bei der such mit berücksichtigen !!!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#7

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 4. Sep 2004, 18:22
n'abend,

wenn alle dateien unbdingt in eine datei müssen, dann pack sie doch
in eine zip. Siehe:

- Winamp
- Wolfenstein ET
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 4. Sep 2004, 18:30
oder selbst einen archiver schreiben ich bin im moemnt dabei, wenn du noch zwei bis drei monhate/jahre warten kannst, hast du einen *G*
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#9

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 4. Sep 2004, 19:19
n'abend,

um eine zip zu entpacken braucht man doch nicht viel,
und libs zum pkalgo gibt's wie sand am meer.
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Eine komplette Map in einer Datei unterbringen?

  Alt 4. Sep 2004, 19:22
Und es gibt ja auch die zlib-Unit, welche Delphi beiliegt!
Die erlaubt das Packen und Entpacken von ZIP-Files!

Mit Delphi-Referenz durchsuchenTCompressionStream und Delphi-Referenz durchsuchenTDecompressionStream!

greetz
Francis Obikwelu
greetz
mytar
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz