Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#11

Re: SpaceWars BETA

  Alt 16. Aug 2003, 15:37
Wegen der Tastenbelegungen:

Du kannst dir ja (z.B. in ne seperate Unit) ne Liste von Konstanten machen, die die Namen aller Tasten auf ner normalen Tastatur haben, und als Werte deren ASCII- oder VK_ Codes haben. Das sind ja im Endeffekt beides Werte, die auf Integer zurückzuführen sind.
Dann brauchst du 6 globale Integer- Variablen. Für alle drei belegbaren Tasten, und das dann für beide Spieler. In ne IniDatei schreibst du dann die vom User eingestellten Werte für die einzelnen Tasten.
Beim Programmstart lädst du diese Werte in die 6 Variablen, und guckst dann da, wo du auf Tastendrücke im Spiel reagierst und guckst welche Tasten gedrückt wurden anstatt der Abfrage

if key = blabliblub then //also Vergleich mit Integerwerten die du im Quellcode eingegeben hast die Abfrage
if key = VariableFürNachVorneTasteVonSpieler1 then , vergleichst die gedrückte Taste also mit deinen globalen Variablen, was dich flexibler macht, weil du das dann ja beeinflussen kannst ohne das Prog neu zu kompilieren.

Ich weiß, ne KI würd schon wohl heftig werden... deswegen hab ich ja auch nen LAN- Multiplayer vorgeschlagen

Und dazu (also LAN), da muss ein Programm als Server fungieren, die anderen Connecten sich. Und wenn beim Client einer ne Taste drückt, dann wird das an den Server geschickt, der es dann an alle anderen Clients weitergibt.
Mir würd bestimmt noch was besseres einfallen, aber erstmal würd ich für die einzelnen Clients dann noch folgendes machen:
Undzwar ne Prozedur, beispielsweise mit Namen "onlineKeyPress", der du dann die Taste übergibst, die gedrückt wurde (die muss der Server ja den Clients schicken). Damit du da keine Schwierigkeiten mit den Tastenbelegungen bekommst, würd ich anstatt des gedrückten Tastencodes einfach beispielsweise nen String verschicken (für nach vorne bspw. "vorwaerts", und so halt weiter). Dann musst du -wenn mehr als ein anderer Spieler mitspielt- auch noch wissen, von welchem Spieler die Taste kam, damit du auch das richtige Raumschiff veränderst.
Ansonsten brauchst du eigentlich fast denselben Quellcode wie aus der Prozedur wo du bislang schon die Tasten verarbeitest. Du müsstest da halt noch die Abfragen entsprechend abändern, weil du ja keinen Tastencode, sondern einen String verarbeiten musst.
Damit das Ganze dann auch wirklich funktioniert, muss jeder Client da, wo er seine Tastendrücke verarbeitet, nach der Tastenabfrage aber noch vor deren Verarbeitung entsprechende Informationen an den Server verschicken.

Joah, das mal so als Konzeptvorschlag. In etwa so würd ich das machen.

Viel Spaß/ gutes Gelingen,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat