AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi rpg-herumlaufkarten-speicherformat
Thema durchsuchen
Ansicht
Themen-Optionen

rpg-herumlaufkarten-speicherformat

Ein Thema von dajuhsa · begonnen am 18. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#1

rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 00:11
Hi,

ich arbeite an einem RPG mit rumlaufen und kämpfen, ganz im Pokemon-Stil.
Jetzt habe ich mir überlegt, die Karte, auf der man momentan rumläuft (aus einzelnen Feldern aufgebaut)
so zu laden:

Delphi-Quellcode:
type
TKarte = Array of Array of TFeld;
var
AktuelleKarte:TKarte;

...

procedure KarteEinlesen(var ZuAenderndeKarte:TKarte;const AKarte:TKarte);
var i,j:integer;
begin
  SetLength(ZuAenderndeKarte,Length(AKarte),Length(AKarte[0]));
  for i := 0 to High(AKarte) do
  for j := 0 to High(AKarte[0]) do
    ZuAenderndeKarte[i,j] := AKarte[i,j];
end;
Meine Frage ist jetzt:
wie soll ich die Karten-arrays speichern?
Ich suche irgendeine Datenbankfreie Lösung, um so eine Teilkarte in einer Datei zu speichern.

Ich hoffe, ihr versteht mein Problem
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 00:14
Hi,

poste mal bitte die Deklaration von TFeld.
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 01:06
hab mir noch nix überlegt, es könnte ein integer sein, also:
0 für leeres feld mit gras
1 für leeres feld mir kies
2 für felswand
...
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#4

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 14:19
Also wenn 255 verschiedene Eigenschaften reichen, dann würd ichs über chars (chr & ord) machen:
Delphi-Quellcode:
//Array
type TKarte = array of array of byte;


//Speichern
list := TStringlist.Create;
try
  list.BeginUpdate;
  for i := 0 to High(AKarte) do
    begin
      buf := '';
      for j := 0 to High(AKarte[i]) do
        buf := buf + chr(AKarte[i][j]);
      list.Add(buf);
    end;
  list.EndUpdate;
  list.SaveToFile('datei.txt');
finally
  FreeAndNil(list);
end;

//Laden
list := TStringlist.Create;
try
  list.LoadFromFile('datei.txt');
  SetLength(AKarte,list.Count-1);
  for i := 0 to High(AKarte) do
    begin
      SetLength(AKarte[i],length(list[i])-1);
      for j := 0 to High(AKarte[i]) do
        AKarte[i][j] := ord(list[i][j]);
    end;
finally
  FreeAndNil(list);
end;
Ungetestet!!

Bei größerem Bedarf an Eigenschaften:
Entweder du nutzt Hier im Forum suchenexplode und Hier im Forum suchenimplode oder (wie ich es mache) du nimmst für ein Spieldfeld von 64*64 einfach ein ebensogroßes Bitmap und ordnest jeder Farbe eine Eigenschaft zu. Dann hast du genug mögliche Eigenschaften und es lässt sich leicht auslesen und speichern!
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 21:04
ja, danke.
ich denke mal, ich hab es grob verstanden.
Danke dir, mfG
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#6

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 21:06
Hab jetzt anhand deiner Beitragszahl geschätzt, dass du Delphi schon soweit beherrscht
Wenn du's nich verstehst / umsetzen kannst dann poste nur wieder hier rein^^
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 21:38
ja ich versteh's,
ich hab mir ja auch erst überlegt, ne textdatei zu nehmen, nur dachte ich, dass es was besseres gibt und dass es leicht zu manipulieren wäre, aber wenn ich das als ressource mit einbinde oder die datei mit ner anderen Endung tarne, haut das schon hin
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
CodyConcrete

Registriert seit: 19. Okt 2007
9 Beiträge
 
#8

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 23:03
Hey,
Soweit ich mich entsinnen kann, kann man doch auch selbst Dateien von einem bestimmten Typ erstellen

FeldDatei = File of TFeld Jetzt kannst du angenehm alle Daten der Felder in die Datei speichern. Das Problem, dass jemand die Datei manipulieren könnte, fällt auch weg. Außerdem ist es ne sehr angenehme Sache, wenn TFeld aus mehreren Variablen verschiedenen Typs besteht.

Das ganze klappt auf jeden Fall wenn dein TFeld ein Record-Typ ist und alle Elemente finit sind, also keine dynamischen Arrays enthält. Wie es bei einer Klasse aussieht kann ich dir nicht sagen, aber du könntest dort einfach einen Record für alle Daten machen, der dann als Eigenschaft der Klasse alle Daten speichert die später auch in der Datei gespeichert werden soll. Dann kannst du ein FileTyp von diesem Record machen und wieder angenehm speichern.

Wenn du willst, kann ich dir ja mal ein Beispiel daszu schreiben
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: rpg-herumlaufkarten-speicherformat

  Alt 18. Mär 2008, 23:19
Der klassische Weg dafür:

Ein array of array of Byte, das man aus ner binären. Dazu gehört außerdem ein "Tileset", das ist ein Bild mit 16*16=256 Tiles. (ein Tile ist jeweils die kleinste Fläche auf einer Karte)

Das ist das Ground-Layer, also der Boden. Dazu gehört nochmal ein array[Byte] of Boolean, das darstellt, ob man über ein bestimmtes Tile gehen kann oder nicht.

Über den Ground-Layer kommt nochmal ein gleich aufgebautes Layer, das dann Objekte wie Häuser, Zäune usw. enthält.

Eine Karte besteht also aus Breite, Höhe, Tilesets für beide Layer, jeweils mit Kollisions-Map und zwei Maps für die Layer.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: rpg-herumlaufkarten-speicherformat

  Alt 19. Mär 2008, 00:32
das wird ja immer komplizierter!
nicht, dass ich es nicht verstehen würde, aber das alles in source sinnvoll umzusetzen könnte schwierig werden.
außerdem muss ich mir ja vorher noch einen map-editor programmieren um die maps zu speichern ...
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 12:00 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