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
Alter Hase
Alter Hase
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
for(i=0; i<256; i++) if (m_bKey[i]) { if(isprint(i)) { char c = static_cast<char>( i); strInput += c; } break; } |
Alter Hase
Alter Hase
C-/C++-Quelltext |
|
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
// ########################################################################### // Datei: keyboard.h // ########################################################################### // Autor: Patrick Ullmann // Erstellt: 12.09.2004 // Änderungen: 12.09.2004 (Patrick) Datei erstellt // ########################################################################### // Beschreibung: Tastaturmanager #ifndef __keyboard_h___12_09_2004___12918521044545484740413214668302127078332_ #define __keyboard_h___12_09_2004___12918521044545484740413214668302127078332_ // I N C L U D E S ########################################################### #include "manager.h" // D E F I N I T I O N E N ################################################### namespace novum { class keyboard; } // Namespace // S T R U K T U R E N ####################################################### namespace novum { class keyboard : public manager { public: // Con- und Destructor keyboard (void); ~keyboard (void); // Funktion gibt die ID des Managers wieder inline virtual int getID (void) { return (m_id); } // ### Hauptfunktionen der Manager void restore (void); void clear (void); void update (void); // ### Nebenfunktionen dieses Managers // Setze die gedrückten und losgelassenen Tasten void setPressedKey (unsigned int key); void setReleasedKey (unsigned int key); // Welche Taste wurde/wird gedrückt? bool isPressed (unsigned int key); bool isReleased (unsigned int key); protected: // ID des Managers int m_id; // Speicherung der Tasten bool m_currKey[256]; bool m_oldKey[256]; }; } // Namespace #endif |
C-/C++-Quelltext |
|
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
// ########################################################################### // Datei: keyboard.cpp // ########################################################################### // Autor: Patrick Ullmann // Erstellt: 12.09.2004 // Änderungen: 12.09.2004 (Patrick) Datei erstellt // ########################################################################### // Beschreibung: Tastaturmanager // I N C L U D E S ########################################################### #include "keyboard.h" // F U N K T I O N E N ####################################################### namespace novum { // /////////////////////////////////////////////////////////////////////////// // PUBLIC Constructor // // /////////////////////////////////////////////////////////////////////////// keyboard::keyboard (void) : m_id (0xFF000001) { // Alles auf 'false' setzen restore (); } // /////////////////////////////////////////////////////////////////////////// // PUBLIC Destructor // // /////////////////////////////////////////////////////////////////////////// keyboard::~keyboard (void) { } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Setzt alle Einträge im Array auf 'false'. // /////////////////////////////////////////////////////////////////////////// void keyboard::restore (void) { // Durchlaufe alle Einträge und setze sie auf 'false'. for (int i=0; i<256; ++i) { m_oldKey[i] = m_currKey[i] = false; } } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Setzt alle alten Einträge auf die neuen Einträge. // /////////////////////////////////////////////////////////////////////////// void keyboard::update (void) { // Aus neu mach alt für den nächsten Frame. :-D for (int i=0; i<256; ++i) { m_oldKey[i] = m_currKey[i]; } } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Setzt alle Einträge im Array auf 'false'. // /////////////////////////////////////////////////////////////////////////// void keyboard::clear (void) { restore (); } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Setzt den Momentan gedrücken Key auf 'true'. // /////////////////////////////////////////////////////////////////////////// void keyboard::setPressedKey (unsigned int key) { // Den gedrückten key auf 'true' setzen. if (key < 256 && key >= 0) { m_currKey[key] = true; } } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Setzt den Momentan losgelassenen Key auf 'false'. // /////////////////////////////////////////////////////////////////////////// void keyboard::setReleasedKey (unsigned int key) { // Den losgelassenen key auf 'false' setzen. if (key < 256 && key >= 0) { m_currKey[key] = false; } } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Abfrage ob Key gedrückt ist. // /////////////////////////////////////////////////////////////////////////// bool keyboard::isPressed (unsigned int key) { // Na welcher Key wird gedrückt? return ((key < 256 && key >= 0) ? this->m_currKey[key] : false); } // /////////////////////////////////////////////////////////////////////////// // PUBLIC // // Abfrage ob Key losgelassen wurde. // /////////////////////////////////////////////////////////////////////////// bool keyboard::isReleased (unsigned int key) { // Welche Taste wurde gerade losgelassen? if (key < 256 && key >= 0) { if ((this->m_oldKey[key] == true) && (this->m_currKey[key] == false)) { return (true); } } return (false); } } // Namespace |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
case WM_KEYUP: { MANAGEMENT.getManager<novum::keyboard>()->setReleasedKey (wParam); } break; case WM_KEYDOWN: { MANAGEMENT.getManager<novum::keyboard>()->setPressedKey (wParam); } break; |
C-/C++-Quelltext |
|
1 2 |
if (MANAGEMENT.getManager<novum::keyboard>()->isReleased (VK_ESCAPE)) break; |
Alter Hase
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
//... if(m_bKey['A'] == true) { cRueckgabe = 'A'; } return cRueckgabe; //... |
Werbeanzeige