Если получаешь действия игрока в виде потока символов, то не можешь точно определить момент отпускания клавиши. Когда жмёшь клавишу, поступает первый символ, затем после небольшой задержки он дублируется. В момент этой задержки невозможно понять, жмёт игрок кнопку, или уже отпустил.