Keyboardtasten in DirectX



  • Hi

    Kennt jemand die Konstanten für sämtliche Tasten der Tastatur? z.B
    "esc"
    "°"
    ";"
    ","
    ":"
    "?"
    "!"
    "ü"
    "ö"
    "ä"
    "-"
    "/"

    Mein 2. Problem ist, die Eingabe ist sehr langsam... (PC wartet sehr lange, bis der die Taste ausliest.) Gibt es noch eine andere schnellere Möglichkeit als mit DirectX die Tasten abzufragen für eine Konsole????



  • Hmmm...

    typedef enum {
    DIK_0,
    DIK_1,
    DIK_2,
    DIK_3,
    DIK_4,
    DIK_5,
    DIK_6,
    DIK_7,
    DIK_8,
    DIK_9,
    DIK_A,
    DIK_ABNT_C1,
    DIK_ABNT_C2,
    DIK_ADD,
    DIK_APOSTROPHE,
    DIK_APPS,
    DIK_AT,
    DIK_AX,
    DIK_B,
    DIK_BACK,
    DIK_BACKSLASH,
    DIK_C,
    DIK_CALCULATOR,
    DIK_CAPITAL,
    DIK_COLON,
    DIK_COMMA,
    DIK_CONVERT,
    DIK_D,
    DIK_DECIMAL,
    DIK_DELETE,
    DIK_DIVIDE,
    DIK_DOWN,
    DIK_E,
    DIK_END,
    DIK_EQUALS,
    DIK_ESCAPE,
    DIK_F,
    DIK_F1,
    DIK_F2,
    DIK_F3,
    DIK_F4,
    DIK_F5,
    DIK_F6,
    DIK_F7,
    DIK_F8,
    DIK_F9,
    DIK_F10,
    DIK_F11,
    DIK_F12,
    DIK_F13,
    DIK_F14,
    DIK_F15,
    DIK_G,
    DIK_GRAVE,
    DIK_H,
    DIK_HOME,
    DIK_I,
    DIK_INSERT,
    DIK_J,
    DIK_K,
    DIK_KANA,
    DIK_KANJI,
    DIK_L,
    DIK_LBRACKET,
    DIK_LCONTROL,
    DIK_LEFT,
    DIK_LMENU,
    DIK_LSHIFT,
    DIK_LWIN,
    DIK_M,
    DIK_MAIL,
    DIK_MEDIASELECT,
    DIK_MEDIASTOP,
    DIK_MINUS,
    DIK_MULTIPLY,
    DIK_MUTE,
    DIK_MYCOMPUTER,
    DIK_N,
    DIK_NEXT,
    DIK_NEXTTRACK,
    DIK_NOCONVERT,
    DIK_NUMLOCK,
    DIK_NUMPAD0,
    DIK_NUMPAD1,
    DIK_NUMPAD2,
    DIK_NUMPAD3,
    DIK_NUMPAD4,
    DIK_NUMPAD5,
    DIK_NUMPAD6,
    DIK_NUMPAD7,
    DIK_NUMPAD8,
    DIK_NUMPAD9,
    DIK_NUMPADCOMMA,
    DIK_NUMPADENTER,
    DIK_NUMPADEQUALS,
    DIK_O,
    DIK_OEM_102,
    DIK_P,
    DIK_PAUSE,
    DIK_PERIOD,
    DIK_PLAYPAUSE,
    DIK_POWER,
    DIK_PREVTRACK,
    DIK_PRIOR,
    DIK_Q,
    DIK_R,
    DIK_RBRACKET,
    DIK_RCONTROL,
    DIK_RETURN,
    DIK_RIGHT,
    DIK_RMENU,
    DIK_RSHIFT,
    DIK_RWIN,
    DIK_S,
    DIK_SCROLL,
    DIK_SEMICOLON,
    DIK_SLASH,
    DIK_SLEEP,
    DIK_SPACE,
    DIK_STOP,
    DIK_SUBTRACT,
    DIK_SYSRQ,
    DIK_T,
    DIK_TAB,
    DIK_U,
    DIK_UNDERLINE,
    DIK_UNLABELED,
    DIK_UP,
    DIK_V,
    DIK_VOLUMEDOWN,
    DIK_VOLUMEUP,
    DIK_W,
    DIK_WAKE,
    DIK_WEBBACK,
    DIK_WEBFAVORITES,
    DIK_WEBFORWARD,
    DIK_WEBHOME,
    DIK_WEBREFRESH,
    DIK_WEBSEARCH,
    DIK_WEBSTOP,
    DIK_X,
    DIK_Y,
    DIK_YEN,
    DIK_Z
    } Keyboard Device;

    Nee gibts nicht 😃



  • Bevor du weiter an der "tollen" Konsole bastelst, solltest evtl. erst nochmal ein bissl den Umgang mit der Doku üben. Und noch ein bissl Autocogito.

    Bye, TGGC (Keine Macht den Dummen)



  • ich hänge mein Problem einfach an diesem Thread, da es damit zu tun hat. Und vielleicht stolpert addict ebenso über diese Hürde wie ich.

    ich habe folgende Memberfunktion einer Klasse:

    // Text an Position x,y ausgeben
    void CFont::DrawText(LPCSTR Text, int x, int y, D3DCOLOR TextColor)
    {
    	//Zusicherung
    	if (x < 0 || y < 0 || !*Text) return;
    
    	RECT r = { x, y, 0, 0 };
    
    	// Größe des Rechtecks berechnen
    	d3dFont->DrawText(Text, -1, &r, DT_CALCRECT, TextColor);
    
    	// Text ausgeben
    	d3dFont->DrawText(Text, -1, &r, DT_CENTER, TextColor);  
    }
    

    Rufe ich diese Funktion auf um das Zeichen & auszugeben, wird nichts ausgegeben.

    TextFont.DrawText("&",100,500,D3DCOLOR_XRGB(0xFF,0xFF,0x00));
    

    Ich kann mir ehrlich gesagt kein Reim mehr darauf machen 🙄 jegliche andere Zeichen werden ordnungsgemäß ausgegeben. Seid so nett und gebt mir einen Tipp

    Sönke



  • Der Font enthält offenbar kein &.

    Bye, TGGC (Wähle deine Helden)



  • doch, ich nutze Arial. Das Zeichen & ist enthalten



  • Naja ist schon komisch wenn sonst alle Zeichen gehen dass gerade das & nicht geht... probier mal sowas wie "\&"...



  • Soenke schrieb:

    doch, ich nutze Arial. Das Zeichen & ist enthalten

    Na und? Weisst du wieviel Zeichen Arial hat, die nichtmal in ASCII darstellbar sind?

    Bye, TGGC (Wähle deine Helden)



  • @ dali auf die Idee, das es als Steuerzeichen untergeht kam ich auch. Ist es aber leider nicht.
    @ TGGC habe es eben auch mit anderen Fonts, wie Times, Courier,... probiert. Gleiches Ergebnis.

    Könnte es vielleicht an dem LPCSTR liegen? Kann ich mir aber nicht so recht vorstellen



  • Das Zeichen ist nicht im Font.

    Bye, TGGC (Keine Macht den Dummen)



  • Mittels Tipp Problem gelöst, aber nicht wirklich zufrieden stellend. Man muß zwei && Zeichen der Funktion übergeben.

    TextFont.DrawText("&&",100,500,D3DCOLOR_XRGB(0xFF,0xFF,0x00));
    

    Jetzt lautet meine Frage: wieso?



  • & gibt in Win kein Zeichen. Markiert nur das nächste als "Shortcut".

    Bye, TGGC (Keine Macht den Dummen)



  • mmh? das spielt bei der Ausgabe von Fonts mittels DirectX ne Rolle?



  • DX kann keine Fonts zeichnen.

    Bye, TGGC (Keine Macht den Dummen)



  • achso, das heißt, daß mit den Funktionen wie D3DXCreateFont im Grunde auf das Betriebssystem zurückgegegriffen wird?



  • Das sowieso. 🤡



  • ok, kapiert - was ne schwere Geburt 😃


Anmelden zum Antworten