ATTENTION READERS! Lucky's VB Gaming Site is no longer active. For updated game programming information and tutorials, please visit The Game Programming Wiki!
Initialisieren einer Verbindung
Wenn der Spieler den gewünschten Verbindungstyp (irgendwie) gewählt
hat, müssen wir versuchen mit diesem eine Verbindung herzustellen.
Das hört sich jetzt vielleicht an als würden wir uns physisch
mit einem anderen Computer verbinden, aber das machen wir (noch) nicht.
Wenn wir die Verbindung initialisieren überprüfen wir nur, ob
der gewählte Typ auch tatsächlich auf dem Computer vorhanden
ist.
Wenn der Spieler z.B. "Modem" ausgewählt hat, aber in Wirklichkeit
gar keines hat bzw. es falsch konfiguriert ist, kriegen wir eine Fehlermeldung
(die können wir aber abfangen). Wenn der Spieler "Modem" wählt
und auch eines hat, passiert gar nichts und unser Programm läuft weiter...
kein Wählen, kein Antworten, bis hierher noch nichts!
Dim objDPAddress As DirectPlayAddress
Set objDPAddress = objEnumConnections.GetAddress(Index
+ 1)
Call dp.InitializeConnection(objDPAddress)
Das Objekt DirectPlayAddress ist interessant. Wir füllen es hier
mit Informationen über den gewählten Verbindungstyp (angenommen,
Index ist die Variable eines Listenfeld, die zurückgegeben wird wenn
der Spieler einen Eintrag aus der Liste der Typen auswählt) und benutzen
diese Informationen um diesen Typ durch DirectPlay4.InitializeConnection
zu initialisieren.
ABER: das Objekt DirectPlayAddress kann nicht nur Infos über Verbindungstypen
beinhalten, es kann auch spezifische Infos über den Computer enthalten,
mit dem wir uns verbinden möchten! Zum Beispiel, wenn wir die IP-Adressedes
anderen Computers schon kennen würden (z.B. ein fester Server) könnten
wir diese Information nun an den Verbindungstyp weiterleiten. Dieser würde
sich diese Info merken.
Wenn wir später versuchen die Sessions aufzulisten oder eine neue
zu beginnen (nächstes Tutorial), zeigt der Verbindungstyp normalerweise
ein Dialogfeld an und fragt nach Informationen (Telefonnummer, IP Adresse,
etc.). Wenn wir diese Informationen schon vorher wüßten, hätten
wir sie vor dem Aufruf DirectPlay4.InitializeConnection in das DirectPlayAddress-Objekt
einfügen können in dem wir eine der DirectPlayLobby3 Methoden
"Create Address" aufgerufen hätten (z.B. DirectPlayLobby3.CreateModemAddress).
Wie auch immer, ich werde hier nicht darüber sprechen. Du wirst es
selbst im SDK nachschauen müssen!
Der Code oben übergibt dem Verbindungstyp keine speziellen
Informationen, also wird er, wenn wir eine Session erstellen, den Spieler
selbst danach fragen.
Traust du dich noch weiter? Die Haie kreisen um den Tropfen Blut im
Wasser...
Spring rein und lese Spiel erstellen/Einem
Spiel beitreten oder bleibe für alle Zeit ein Weichei! (und hier
gibts denn Quellcode!)