AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verwaltung von Einstellungen

Ein Thema von Neutral General · begonnen am 20. Mai 2008 · letzter Beitrag vom 22. Mai 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Verwaltung von Einstellungen

  Alt 22. Mai 2008, 15:23
Hi,

Ich bin mir nicht so sicher. Also es ist ja so, das es nicht darum geht den aktuelle Spielstand zu speichern oder zu laden, sondern nur die Spieldaten. Wie machen es denn andere Spiele.. z.B. Shooter.. Die ganzen Modells, Sprites etc.. Also wenn es wirklich viele Daten sind. Wann werden die geladen und wie werden sie verwaltet?

Also ich schreib mal nen kleinen Pseudocode hierhin, jetzt nicht mit Kreaturen/Autos sondern mit Gebieten.

Delphi-Quellcode:
var
  Gebiete: TObjectlist;
  TileList: TTileList; // TObjectlist


procedure BeiSpielStart;
begin
  Gebiete.LoadFromFile('Gebiete.dat');
  TileList.LoadFromFile('Tiles.dat');
end;

procedure TGebiet.DoEnter(Sender: TObject);
begin
  LoadMap(Self.MapID);
end;

procedure TGebiet.LoadMap(ID: Integer);
var i: Integeger;
begin
  // Map malen
  for i:= 0 to Gebiete[ID].Tiles.Count-1 do
    TileList[Gebiete[ID].Tiles[i].ID].Draw;
  // Kreaturen drauf stellen
  for i:= 0 to Gebiete[ID].Creatures.Count-1 do
    with TCreature.Create(...) do
    begin
      Assign(Creatures[Gebiete[ID].Creatures[i].ID]);
      x := Gebiete[ID].Creatures[i].x;
      y := Gebiete[ID].Creatures[i].y;
    end;
end;
So würde ich das bisher ungefähr machen. Aber ich weiß nicht ob mir das gefällt. Vor allem Zeilen wie:

TileList[Gebiete[ID].Tiles[i].ID].Draw; sind mir ein Dorn im Auge und in der Praxis wird sowas eventuell noch schlimmer aussehn.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Verwaltung von Einstellungen

  Alt 22. Mai 2008, 15:53
Deine zwei Listen sind ja global und stellen eine Sammlung von Objekten dar (z.B. TGebiet).
Aus dem Objekt selbst greifst Du dann auf die globale Liste zu...

statt
for i:= 0 to Gebiete[ID].Tiles.Count-1 do
sollte doch
for i:= 0 to Tiles.Count-1 do
auch reichen!?

Und darüber hinaus könntest Du die optisch komplizierten Anweisungen in eine globale Funktion bzw. Prozeduren auslagern:
Delphi-Quellcode:
  for i:= 0 to Tiles.Count-1 do
    TileListDraw(MapID, I);

  procedure TileListDraw(MapId, I: Integer);
  begin
    TileList[Gebiete[MapID].Tiles[I].ID].Draw;
  end;
Das ändert zwar an der Anweisung nichts, vereinfacht aber etwas die Lesbarkeit Deines "eigentlichen" Programmcodes.

stahli
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:21 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