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!)