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
Community-Fossil
Community-Fossil
Community-Fossil
Die "UI-Leisten" müssen dem normalen "Spielfeld" gegenüber priorisiert abgefragt werden und dieses je nach Situation blockieren.
Wenn ich zB auf die Schaltfläche der Hand drücke, muss blockiert werden dass ich den darunter versteckten Mauerabschnitt anklicke.
Zitat
Gibt es in C++ bereits Möglichkeiten events zu benutzen (von der Sprache, nicht andere libraries) oder müsste ich mir einen eigenen Eventhandler bauen? Wenn ja, wie setzt man dies am besten um?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NachoMan« (26.01.2014, 20:35)
Community-Fossil
EDIT(NachoMan war mal wieder schneller):
Also ich finde grade ein Klick ist schon oft. Aber ich denke darüber könnte man sich streiten und das bringt hier ja grade nichts
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NachoMan« (26.01.2014, 20:48)
Community-Fossil
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 |
class Event { virtual bool wasStarted(); virtual bool wasStopped(); virtual bool isActive(); virtual bool update(); } class KeyboardEvent : public Event { Key key; bool isDown; bool hasNewStatus; KeyboardEvent(Eventmanager &eventmanager, Key key) :key(key), isDown(false), hasNewStatus(false) { eventManager.RegisterEvent(this); } virtual bool wasStarted(){return isDown && hasNewStatus;} virtual bool wasStopped(){return !isDown && hasNewStatus;} virtual bool isActive(){return isDown} virtual void update(){ bool newKeyStatus = Input.isKeyPressed(key); hasNewStatus = newKeyStatus != isDown; isDown = newKeyStatus; } } class Eventmanager { Vector<Event*> allEvents; RegisterEvent(Event &event) { allEvents.push_back(&event); } Update() { foreach(Event *event in AllEvents) { event->update(); } } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (26.01.2014, 21:21)
Werbeanzeige