1

数か月前にプログラミングを学び始めたばかりで、コンソールのスネーク ゲームをやろうと決心しました。1つのことを期待して、すべてがうまく機能します。

ヘビが上向きになり、下矢印を押したままにすると、ボタンを押すのをやめた後も、ヘビは停止し、しばらく停止したままになります。

ヘビが右に進んでいるときに右矢印を長押しすると、しばらくコントロールが失われます (ただし、ヘビは止まりません)。すべての方向(左、右、上、下)で発生します。

cki を別の ConsoleKeyInfo と比較しようとしましたが、その間にわずかな遅延がありましたが、問題ありません。キーを押し続けると、プログラムはその場所にとどまり、キーを更新します。(少なくともそれが問題だと思います)

これは Console.ReadKey の「機能」ですか、それともこれを回避する方法はありますか?

まだ始めたばかりなので、詳しいことはわかりませんのでご了承ください。

キーを 1 秒以上押し続けない限り、すべてが問題なく動作します。

   public void LiikutaMato() //movesnake
    {

        if (Console.KeyAvailable)
        {
                ConsoleKeyInfo cki;
                cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck 

    }
4

1 に答える 1