Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2014, 00:48   #1
kappa937
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 42
По умолчанию Одновременное нажатие двух клавиш C# (Windows Forms)

Здравствуйте, нужна помощь вот в чем: обрабатываю нажатия клавиш W A S D и стрелки для передвижения двух объектов, меняю тупо координаты при передвижении, но при этом устают пальцы постоянно тыкать по клавишам:
Идея в том, чтобы можно было _зажимать_ одновременно какие-то из этих клавиш и оба объекта двигались бы (как в старых добрых танчиках); собственно вопрос, как обработать одновременное _зажатие_ клавиш? KeyDown и KeyCode я так понимаю здесь вообще не подойдет. Как тогда быть?
kappa937 вне форума Ответить с цитированием
Старый 01.04.2014, 07:52   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Обычно (в простейшем виде) такая задача делается через флаги (отдельные или массив). Сама же реакция на нажатость кнопок обрабатывается вне событий KeyUp/KeyDown , обычно в таймере.
Код:
private bool isWdown;
private bool isAdown;

void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.A) isAdown = true;
    if (e.KeyCode == Keys.W) isWdown = true;
}

void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.A) isAdown = false;
    if (e.KeyCode == Keys.W) isWdown = false;
}

void Timer1_Timer(object sender, EventArgs e)
{
    if (isAdown) Player.XPos -= Player.Speed.X;
    if (isWdown) Player.YPos -= Player.Speed.Y;      
}
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие двух клавиш одновременно sunny_alice Общие вопросы по Java, Java SE, Kotlin 1 22.05.2012 15:55
[Qt] Одновременное нажатие клавиш Voltrex Помощь студентам 1 20.05.2011 22:06
одновременное нажатие клавиш DeDoK Общие вопросы Delphi 3 08.01.2010 16:59
Отловить нажатие двух клавиш Сид Общие вопросы Delphi 2 28.12.2009 20:42
Одновременное нажатие клавиш. Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 08.04.2009 18:17