Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

11

14.10.2003, 22:13

hm komisch, naja egal :) Solang es funzt ist es ja okay ;D

12

15.10.2003, 19:20

so das habe ich ja jetzt.

Jetzt wollte ich die Klasse Tastatur noch um eine Eingabemethode erweitern, die prüft, ob ESCAPE gedrückt wurde.

Da kommt es aber wieder zu einer Speicherstapelung...

also hier die Erweitrung:


NC_DI_Init.cpp

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// ...
int Tastatur::Tastatur_Eingabe(LPDIRECTINPUTDEVICE8 lpDIGeraet)
{
    hr = lpDIGeraet->GetDeviceState(sizeof(Key_Buffer), (LPVOID) &Key_Buffer);

    if (hr != DI_OK)
    {
        if (hr == DIERR_INPUTLOST)
        {
            if (lpDIGeraet)
            {
                lpDIGeraet->Acquire();
                hr = lpDIGeraet->GetDeviceState(sizeof(Key_Buffer), (LPVOID) &Key_Buffer);

                if (hr != DI_OK)
                {
                    MessageBox(NULL, "Alles vorbei!", "Mist", MB_OK);
                }
            }
        }
        else
        {
            MessageBox(NULL, "Fehler", "Mist", MB_OK);
        }
    }

    if (Key_Buffer[DIK_ESCAPE] & 0x80)
    {
        MessageBox(NULL, "Das hat geklappt", "Ok", MB_OK);
        // PostQuitMessage(0);
        return 1;
    }
    return 1;
}


NC_DI_Init.h

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
class Tastatur
{
private:
    char Key_Buffer[256];

public:
     

    int Tastatur_Init(LPDIRECTINPUT8 lpDI, LPDIRECTINPUTDEVICE8 lpDIGeraet, HWND hwnd);
    int Tastatur_Eingabe(LPDIRECTINPUTDEVICE8 lpDIGeraet);

};



NC_DI_main.cpp

Quellcode

1
2
3
4
5
//..
Device.DI_Init_general(hinst);
   Keyboard.Tastatur_Init(Device.lpDI, Device.lpDIGeraet, hwnd);
   Keyboard.Tastatur_Eingabe(Device.lpDIGeraet);
//..