Hej, tworzę małymi kroczkami grę w konsoli i mam problem z poruszaniem się postacią gracza, które oparłem na getch() i switchu.
Gdy nie zacznę się jeszcze poruszać postacią i wcisnę klawisz do którego nie jest przypisana żadna komenda ruchu, np " j " to nie ma żadnego problemu. Jednak gdy poruszę się ( klawisze w, a, s, d) i następnie wcisnę klawisz nie odpowiedzialny za ruch, np to " j ", lub każdy inny z klawiatury, to postać będzie dalej poruszać się w kierunku który wyznaczał poprzednio wciśnięty klawisz ruchu. Identyczna sytuacja jest gdy wcisnę przyciski " o " lub " c " które odpowiadają za odpowiednie komendy. Np. Po wykonaniu komendy open door pod " o " postać przechodzi wyżej, bo np. wcześniej został wciśnięty przycisk " w ". Jest to strasznie irytujące.
W czym leży problem i jak się tego pozbyć? Próbowałem użyć funkcji cin.ignore, cin.clear, cin.syns, fflush(stdin) ale nie pomogło, albo źle je implementuje, albo to coś innego...
Cały dotychczasowy kod gry: http://pastebin.com/1qhQKLKm
Odizolowany kod odpowiedzialny za poruszanie się: http://pastebin.com/Tdc8MGgU (tutaj dodatkowo pojawia się błąd jak od razu wciśniemy klawisz nie odpowiedzialny za ruch)