ProfilProfil
 Registrieren
 Login
Bild der WocheBild der Woche

(von Backslider)
Kommentare (0)
****

Weitere
User onlineBenutzer online
Gäste online: 7
Mitglieder online: Keine
Registrierte Mitglieder: 2126
Neustes Mitglied: Soldat-Frozer

Benutzerdefinierte Tastenbelegung

Neue Antwort erstellen
 

 

Autor Nachricht
 
 
Kagome
Member


Anmeldedatum: 22.02.2012
Beiträge: 106

Antworten mit Zitat
BeitragVerfasst am: 29.07.2012, 14:14    Titel: Benutzerdefinierte Tastenbelegung

Ola,

ich stehe grade vor einer konzeptionellen Frage:
Wie realisiere ich am besten benutzerdefinierte Tastenbelegungen.

Bsp:
vorwärts Laufen ist per default auf W.
Ein Benutzer mag aber lieber die Pfeiltasten oder Space oder sonstwas zum vorwärts laufen.
Nun kann er das irgendwo einstellen und wäre glücklich.

Die Frage is nur wie würde ich sowas im code verwalten.

Bisher geht man z.B. hin und macht folgendes:

Code:

if (keyboardState.IsKeyDown(Keys.W))
    BewegSpielerNachVorne();


Hier würden mich mal Ideen interessieren wie man sowas realisieren kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


XMR1
Member


Anmeldedatum: 28.04.2010
Beiträge: 1209
Wohnort: Bayern

Antworten mit Zitat
BeitragVerfasst am: 29.07.2012, 14:24    Titel:

Keys ist ein Enum.
Also kannst du dieses einfach rauschreiben z.B. im Format
Zitat:
MoveForward: W
MoveLeft: A

Usw.
Der linke Teile wäre dann z.B: deine interne Bennenung und der rechte Teil die entsprechende Taste.
Dann muss der Nutzer nur noch dort einen Wert aus dem Enum eintragen und du musst ihn mit
Code:
Keys k = (Keys)Enum.Parse(typeof(Keys), stringValue);

ausparsen.
stringvalue = "W" würde dir dann z.B. Keys.W zurückgeben.
Im Code hältst du das ganze dann einfach in einer Klasse KeyActionMap oder so, die zu Beginn die Textdatei eingelesen hat und alle Werte abspeichert.
Jeder Action deines Spiels (MoveForward, MoveLeft) ist dann genau eine Taste (oder mehrere?) zugeordnet.
Statt
Code:
keyboardState.IsKeyDown(Keys.W)

nutzt du dann
Code:
actionMap.IsAtive(Action.MoveForward)

welches intern überprüft ob die dazugehörige Taste gedrückt ist.
_________________
Webseite | marc.stanglmayr.de
Blog | blog.mastasoftware.net
studentpartners.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen ICQ-Nummer


Kagome
Member


Anmeldedatum: 22.02.2012
Beiträge: 106

Antworten mit Zitat
BeitragVerfasst am: 29.07.2012, 15:28    Titel:

XMR1 hat Folgendes geschrieben:
Keys ist ein Enum.


verdammte Achst - da hätte ich mal genauer drauf schauen können.

Die Idee mit der KeyActionMap find ich gut. Danke für die Ideen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Beiträge der letzten Zeit anzeigen:   
 
Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de