Delphi-PRAXiS
Seite 9 von 18   « Erste     789 1011     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Game] 2.6D - Sandb(L)ox (https://www.delphipraxis.net/108153-%5Bgame%5D-2-6d-sandb-l-ox.html)

Custom 18. Feb 2008 13:51

Re: [Game] 2.6D - Sandb(L)ox
 
Zitat:

Zitat von himitsu
wenn mehrere Spieler eingeloggt sind, dann bauen alle Figuren einen Würfel, obwohl nur ich das machen wollte.

du hast das spiel zwei mal auf einem PC gestartet richtig? wenn man das tut werden die tasten die man drückt auf beide fenster angewendet -> du baust von beiden fenstern aus einen würfel. Ich muss also nur das fenster mit dem focus beauftragen befehle auszuführen. Versuch es mal von einem zweiten PC aus. (oder frage einen freund wenn du nur einen pc hast) Aber das steht im moment ganz oben auf der to-do liste direkt nach dem flieger-bug ^^ (neues update ist noch heute zu erwarten!)

*edit: moment das kann garnicht sein... es wird schon geguckt ob der focus auf dem fenster ist!...

Florian H 18. Feb 2008 14:02

Re: [Game] 2.6D - Sandb(L)ox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hm, ich hatte ein paar Grafikfehler, als ich ganz im Eck (da wo schon ein Männlein steht) einen hohen Turm baue (siehe Anhang) .. d.h. der oberste Klotz ist nicht sichtbar und in der Mitte irgendwo hat ein Block "Löcher"...

Custom 18. Feb 2008 14:17

Re: [Game] 2.6D - Sandb(L)ox
 
das passiert wenn du zu hoch baust... ich muss gucken was ich machen kann damit das nichtmehr passiert weil ich nicht "erlauben" kann dass man unendlich hoch baut da sonst zuviel arbeitspeicher verbraucht wird (obwohl ich eigendlich eine idee hätte den code umzuschreiben, sodass das ganze spiel weniger verbruacht und die blöcke in alle richtungen unbegrenzt sind...)

3_of_8 18. Feb 2008 14:20

Re: [Game] 2.6D - Sandb(L)ox
 
Du speicherst die Blöcke in einem dreidimensionalen Array? :shock:

Warum nicht einfach eine Liste?

Custom 18. Feb 2008 14:23

Re: [Game] 2.6D - Sandb(L)ox
 
Zitat:

Zitat von 3_of_8
Du speicherst die Blöcke in einem dreidimensionalen Array? :shock:

pschhht muss ja ned jeder wissen was ich manchmal für faxen mache :-D

Zitat:

Zitat von 3_of_8
Warum nicht einfach eine Liste?

hab ich vor aber dafür muss ich den kompletten teil mit der kollisionsabfrage umändern.
und mit einer solchen liste habe ich bis jetzt noch nicht gearbeitet, da ich bis jetzt nur "TSRings" oder "TStringList" benutzt habe...

olee 18. Feb 2008 14:51

Re: [Game] 2.6D - Sandb(L)ox
 
Also ich benutze die ständig.
Ist doch einfach!

Delphi-Quellcode:
for i := 0 to 10 do
begin
  VarX := TX.create(...);
  VarX.X := 100;
  Liste.add(VarX);
end;

Custom 18. Feb 2008 14:57

Re: [Game] 2.6D - Sandb(L)ox
 
was für eine klasse ist "liste" es muss ja eine liste sein in der ich positionX,positionY,positionZ,(evtl noch einige andere daten wie textur farbe etc) speichern kann... natürlich geht das auch als string den man dann splittet aber die variante mag ich irgendwie nicht ^^

hitzi 18. Feb 2008 15:42

Re: [Game] 2.6D - Sandb(L)ox
 
Du kannst doch auch Listen mit Klassen als Listenelement machen.

igel457 18. Feb 2008 15:46

Re: [Game] 2.6D - Sandb(L)ox
 
Records sind natürlich auch möglich:

Delphi-Quellcode:
type TBlock = record
  posx, posy, posz : integer;
end;
PBlock = ^TBlock;

var
  lst : TList;
  p : PBlock;

Hinzufügen:
lst := TList.Create;
New(p);
p^.posx := 0;
lst.Add(p);

Auslesen:
p := lst.Items[i];
xpos := p^.posx;

Löschen:
p := lst.Items[i];
Dispose(p);
Delete(i);

xZise 18. Feb 2008 15:49

Re: [Game] 2.6D - Sandb(L)ox
 
Zuerstmal hast du wohl eine "Feldklasse":
Delphi-Quellcode:
TBlock = class(TObject)
private
  FX, FY : Integer;
public
  property X : Integer read FX;
  property Y : Integer read FY;

  constructor Create(const AX, AY : Integer);
end;
Und entweder nimmst du einfach so eine Liste (Da das Object alles sein könnte, muss man sich sicher sein, was man da macht!):
Delphi-Quellcode:
FList : TObjectList;
[...]
FList := TObjectList.Create;
[...]
block := TBlock.Create([...]);
[...]
FList.Add(block);
[...]
Oder du erstellst dir selber eine Liste (aufwendiger ab im endeffekt Fehlersicherer):
Delphi-Quellcode:
TBlockList = class (TObject)
private
  FList : TObjectList;
  function GetBlock(AIndex : Integer) : TBlock;
  procedure SetBlock(AIndex : Integer; Value : TBlock);
public
  procedure Add(ABlock : TBlock);
  procedure Delete(ABlock : TBlock);

  property Bloecke[AIndex : Integer] : TBlock read GetBlock write SetBlock; default;

  constructor Create;
  destructor Destroy;
end;
Und fertig ;)

Naja jedenfalls die Definition der Klassen.
Diese kannst du genauso wie eine TObjectList-Liste verwenden.

MfG
xZise

PS: Das "default;" hinter der Property bedeutet, dass man die nicht aufrufen muss. Wenn du das bei TStrings machst, machst du ja meißt "MyTStrings[<Zeile>]" ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.
Seite 9 von 18   « Erste     789 1011     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz