На ваш вопрос
"Кроме того, как я могу все время слушать
на какие клавиши были нажаты, а не
только один раз "
Я вижу, что вы уже использовали событие Form.KeyDown, чтобы закрыть игру, если была нажата клавиша "q":
private void Form1_KeyDown(object sender, KeyArgs e)
{
if (e.KeyCode == Keys.Q)
{
Application.Exit();
}
}
Хорошо, вы можете добавить больше ключей к вашему методу:
private void Form1_KeyDown(object sender, KeyArgs e)
{
if (e.KeyCode == Keys.Q)
{
Application.Exit();
}
else if (e.KeyCode == Keys.Up)
spaceInvaders.MoveUp();
}
Для цепочки я думаю, что класс KeyStoke управляет игровым интерфейсом. Потому что событие KeyDown используется для определения, какая клавиша была нажата. Я советую вам больше узнать о мероприятиях и делегатах.