Нажатие нескольких кнопок одновременно - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Возникла проблема, экзаменационная игра в консоле. Мне надо одновременно отлавливать нажатие кнопок влево / вправо / пробел. Но не получается это делать одновременно, т.е. надо отпустить "влево" и нажать "пробел", а игрушка Galaxy, надо что бы при зажатой клавише в сторону, можно было обработать нажатие пробела(выстрелить ракетой). Получается пасивное управление, очень неудобно. Помогите пожалуйста. P.S. Думал выиграю тем, что буду обрабатывать кнопки влево/вправо в одном потоке а кнопку пробел в другом. И только хуже стало = (... Заранее всем спасибо.

Решение задачи: «Нажатие нескольких кнопок одновременно»

textual
Листинг программы
using System.Runtime.InteropServices;
 
[DllImport("user32.dll")]
static extern short GetAsyncKeyState(ConsoleKey vk);
 
static void Main(string[] args)
        {
            Console.WriteLine("ожидает нажатие на клавиши");
            for (; ; )
            {
                if (GetAsyncKeyState(ConsoleKey.LeftArrow) != 0 && GetAsyncKeyState(ConsoleKey.Spacebar) != 0)
                    Console.WriteLine("нажаты обе кнопки");
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы