Книга: Программирование КПК и смартфонов на .NET Compact Framework
Хлеб — всему голова
Разделы на этой странице:
Хлеб — всему голова
Наша программа должна уметь перемещать батон хлеба таким образом, чтобы игрок мог отбивать кусок сыра, как будто играя им в теннис. Для этой цели игрок будет использовать клавиши навигации на телефоне. Чтобы управлять батоном хлеба, придется использовать события KeyDown
и KeyUp
. Событие KeyDown
наступает, когда пользователь нажимает на заданную кнопку. Событие KeyUp
инициируется при отпускании кнопки.
Необходимо установить флаг, который будет отслеживать нажатия и отпускания клавиш. Когда флаг будет активирован, это будет означать, что пользователь нажал на клавишу, и батон должен двигаться в указанном направлении. Когда пользователь отпустит клавишу, то флаг сбрасывается и объект прекращает движение.
Обработчики событий используют перечисления Keys
, показывающие конкретные кнопки навигации. Соответствующий код приведен в листинге 11.15.
Листинг 11.15
/// <summary>
/// Используем keyArgs в качестве флага
/// </summary>
private System.Windows.Forms.KeyEventArgs keyArgs = null;
private void Form1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e) {
keyArgs = e;
}
private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) {
keyArgs = null;
}
Когда программа получает вызов события Form1_KeyDown
, флаг keyArgs
ссылается на класс KeyEventArgs
. При наступлении события Form1_KeyUp
флаг keyArgs
сбрасывается в null
, и код нажатых клавиш игнорируется. Теперь надо переписать метод updatePositions
, как показано в листинге 11.16.
Листинг 11.16
private void updatePositions() {
// Код для кусочка сыра остался прежним
...
// Для батона хлеба
if (keyArgs != null) {
switch (keyArgs.KeyCode) {
case Keys.Up:
by-=ySpeed;
break;
case Keys.Down:
by+=ySpeed;
break;
case Keys.Left:
bx-=xSpeed;
break;
case Keys.Right:
bx+=xSpeed;
break;
}
}
}
В данном коде используется оператор switch
, который определяет действия программы в зависимости от нажатой клавиши. Батон хлеба движется с той же скоростью, что и кусочек сыра. На этой стадии при запуске программы пользователь может перемещать батон хлеба по всему экрану, в то время как кусочек сыра по-прежнему самостоятельно двигается по экрану.
- Начало работы
- Добавление изображения в программу
- Использование встроенных ресурсов
- Вывод картинки на экран
- Создание анимации
- Отражения
- Управление скоростью движения объекта
- Добавляем новый объект
- Устранение мерцания
- Хлеб — всему голова
- Обнаружение столкновений
- Столкновения батона и мяча
- Новые объекты
- Размещение помидоров
- Уничтожение томатов
- Счет игры
- Ведение счета
- Звуковые эффекты
- Дальнейшие улучшения
- И опять добавляем новые объекты
- Управление таблицей результатов
- Переключение между формами
- Отображение дочернего окна
- Получение имени игрока
- Хранение лучших результатов
- Улучшение графики
- Спрайты
- Старый монитор начал издавать высокий звук, от которого болит голова. Как это прекратить?
- Публикация информации, потенциально способной нанести вред всему обществу или его части
- 9. Короткая «голова»
- Голова против сердца
- Заголовок – это главное (всему голова)
- Интернет всему голова
- Одна голова хорошо, а две – лучше
- Белый хлеб
- Александр Кравцов: «У меня нет ежедневника. Зато у меня есть голова»
- Одна голова хорошо, а две — лучше
- Как танцевать по всему миру
- Счастливые люди – всему голова