c # console cobra fica preso na imprensa longa
Eu comecei a aprender programação alguns meses atrás e decidi fazer um jogo de consola de cobra. Tudo funciona muito bem esperar por uma coisa.
Se minha cobra estiver indo para cima e eu pressionar a seta para baixoe mantê-lo pressionado, minha cobra apenas para e fica parada mesmo depois de eu parar de apertar o botão.
A mesma coisa acontece se minha cobra estiver indo para a direita e eu pressionar a seta para a direita por muito tempo, eu perco o controle por algum tempo (mas a cobra não para). Isso acontece para todos os sentidos (esquerda, direita, cima, baixo).
Eu tentei comparar o cki a outro ConsoleKeyInfo com um ligeiro atraso entre eles, mas isso não importa. Se eu mantiver a tecla pressionada, meu programa apenas fica nesse ponto e atualiza para uma chave. (pelo menos eu acho que é o problema)
Isso é um "recurso" do Console.ReadKey ou existe alguma forma de apresentar isso?
Tenha em mente, que eu comecei, então eu não sei sobre as coisas avançadas, ainda.
Tudo funciona sem falhas, desde que eu não mantenha a tecla pressionada por mais de 1 segundo.
public void LiikutaMato() //movesnake
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo cki;
cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck
}