Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi DXPlay (https://www.delphipraxis.net/35412-dxplay.html)

ISAS 6. Dez 2004 19:12


DXPlay
 
So, jetzt hab ich schon einige Stunden gesucht und nichts, rein gar nichts über DXPlay gefunden :evil: . Ich will ein Netzwerkspiel programmieren. Die Komponenten von Delphi Server und Client sind zwar recht schön und gut, aber nicht besonders ausgereift. Deswegen denke ich mir, wenn ich schon ein Spiel mit DelphiX programmiere und das netzwertauglich sein sollte, DXPlay genau die richtige Komponente sein muss. :-D

Gibt es irgendwo Tutorials für DXPlay? Ganz einfache: zB ein Programm, wo man mit Spielern hin und hergeht. Es gibt einen Server und Clients. Nun kann man sich beim Server einloggen und dann herumgehen. Ein total simples Netzwerkspiel. Wenn ich das hätte, dann wär der Rest total leicht. :wink:

Wenn es nichts im Internet gibt, dann kann mir vielleicht einer hier weiterhelfen, ist sicher nicht nur für mich nützlich.

Thnx, Robs!!! :mrgreen:

Nils_13 6. Dez 2004 19:15

Re: DXPlay
 
Hast du schon bei Google gesucht?

Wenn nicht kann ich dir nicht helfen :(

Maximus 6. Dez 2004 19:19

Re: DXPlay
 
Hallo,

Früher auf der Seite von Delphi-Treff gabs mal ein Tutorial bezüglich DX, da wurde auch der DXPlay Komponenten erklärt, und wie man ihn einsetzt. Aber seit Delphi-Treff und Delphi-Source zusammen sind gibts das Tutorial nicht mehr.

Eventuell hat es noch irgendjemand, musst eben mal herumfragen.

Ansonsten Google ...

MFG
Maximus

Flogo 6. Dez 2004 19:41

Re: DXPlay
 
Bei den Samples von DelphiX sind auch 2 Chats dabei. Das sollte dir auch ein wenig beim Einstieg helfen

ISAS 7. Dez 2004 12:54

Re: DXPlay
 
Naja, gegooglet habe ich ja auch schon. Werd mal die von delphi source anfragen und die 2 Chatprogramnme anschaun.

Frage, wo sind die beiden Programme drinnen??

//Edit Habe sie schon gefunden!!!

ISAS 7. Dez 2004 15:17

Re: DXPlay
 
Naja, einfach sind die Chatprogramme nicht zu verstehen. Werd glaub ich noch die ganze Nacht an dem stitzen. Das Schwierige ist, die Sach für ein Spiel zu machen. Habe leider jetzt nur einen Computer und hoffe, dass mein Vater früh von der Arbeit kommt, damit ich das mit seinem Laptop zusätzlich noch ausprobieren kann. Dann kommt natürlich noch dazu, dass er nicht einfach nur msges hin und her schicken soll. Bei einem Spiel wird ja immer nur ein String geschickt, aber der soll geordnet sein. Wie zB Spielerpositionen. Das wird dann sehr kompliziert, wenn das irgendwie verschachtelt ist und kostet sicher auch viel Rechenzeit.

ISAS 7. Dez 2004 17:48

Re: DXPlay
 
So, aeigentlich versteh ich nun alles, ausser:

type
TDXChatMessage = record
MessageType: DWORD; { MessageType is absolutely necessary. }
Len: Integer;
C: array[0..0] of Char;
end;

Für was man Len und C braucht is mir nicht klar. Len is die Länge, aber wieso muss ich das kürzen oder was??
Der Code is bei dem DelphX Netzwerk Beispiel gleich ganz oben (Chat1)

JamesTKirk 7. Dez 2004 18:23

Re: DXPlay
 
Des Len und C hat was mit dem SrtLCopy(oder so) zu tun. Laut einem Freund von mir hat das was mit Byteverschiebung zu tun. Ich werd mal schauen, ob ich was näheres dazu rausfinde und melde mich wieder.
Wenn du nur einen PC hast kannst du übrigens folgenden Trick benutzen: Starte einmal das Programm (zum Beispiel von Delphi aus) und gib die ganzen Informationen die DXPlay will ein. Danach startest du die Anwendung zum zweiten Mal (z.B aus dem Explorer) und gibst unter dem Punkt 'Join' die IP 127.0.0.1 ein und du hast ein Netzwerk auf einem PC. (Zum Programieren ist das praktisch, vor allem, wenn man kein Netzwerk hat!) Die IP wurde übrigens mal auf Delphi-Praxis erwähnt.

Flogo 7. Dez 2004 18:56

Re: DXPlay
 
Der Record TDXChatMessage ist der Typ, der zwischen Client und Server verschickt wird.

die Grundstruktur ist einfach nur:

Delphi-Quellcode:
type
  TDXChatMessage = record
    MessageType: DWORD;
  end;
Der MessageType gibt an, welche Nachricht grade verschickt wird / ankommt.
In diesem Fall wird MessageType immer auf ChatNachricht gesetzt.
Alles andere ist der Inhalt. Im Beispiel:
Len: Anzahl der Zeichen in der Nachricht
C: Die Nachricht selber.

wenn du jetzt zB die Position deiner Spielfigur verschicken willst, sollte das ganze so aussehen:

Delphi-Quellcode:
type
  TDXPositionsMessage = record
    MessageType: DWORD; // <--- Im Programm hier eine Konstante für "Position" reinschreiben
    x, y: Integer;
  end;

Flogo 7. Dez 2004 22:20

Re: DXPlay
 
Als Antwort auf deine PN (dann könnens auch andere lesen):


Das Versenden wäre dann:

Delphi-Quellcode:
procedure SendeKoordinaten(aX,aY: Integer);
var
  Msg: ^TDXPositionsMessage;
  MsgSize: Integer;
begin
  MsgSize := SizeOf(TDXPositionsMessage);
  GetMem(Msg, MsgSize);
  try
    Msg.MessageType := DXPOS_MESSAGE; // vorher unter "const" einführen
    Msg.X := aX;
    Msg.Y := aY;

    {  The message is sent all. }
    DXPlay1.SendMessage(DPID_ALLPLAYERS, Msg, MsgSize);

    {  The message is sent also to me. }
    DXPlay1.SendMessage(DXPlay1.LocalPlayer.ID, Msg, MsgSize);

  finally
    FreeMem(Msg);
  end;
end;
Das ganze ist nur aus dem Beispiel rauskopiert und angepasst
... und damit ungetestet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 Uhr.
Seite 1 von 3  1 23      

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