Климов Александр Петрович
Шрифт:
Теперь можно вызывать этот метод для изменения скорости движения изображения. Для уменьшения скорости надо передавать в функцию отрицательные значения. Чтобы управлять скоростью во время игры, можно использовать клавиши
Следует создать простое меню, содержащее команды
В данной ситуации значения в методе
Добавляем новый объект
Итак, в результате наших усилий по экрану движется кусочек сыра. Настало время добавить новый объект, которым пользователь будет отбивать сыр. Для наших целей вполне подойдет батон хлеба. Вспоминаем предыдущие упражнения, где мы выводили кусочек сыра на экран, и повторяем шаги в той же последовательности для батона хлеба.
□ Добавляем графический файл в проект в виде ресурса.
□ Получаем в коде ссылку на файл из сборки
□ Объявляем две переменные, содержащие координаты батона хлеба.
Соответствующий код приведен в листинге 11.12.
На рис. 11.3 показан внешний вид программы на этом этапе.
Рис. 11.3. Изображения хлеба и сыра
Устранение мерцания
Несмотря на то что мы проделали уже очень большую работу, наша программа по-прежнему не лишена недостатков. При запуске программы изображения постоянно мерцают, раздражая пользователя. Это связано с перерисовкой экрана через заданные интервалы времени. Каждые 50 миллисекунд экран закрашивается белым фоном, а затем на экран выводятся два объекта. Если не устранить этот недостаток, то никто не захочет играть в игру.
Решение проблемы лежит в использовании специальной техники, называемой двойной буферизацией. Двойная буферизация обеспечивает плавную смену кадров. Технология позволяет рисовать необходимые изображения в специальном буфере, который находится в памяти компьютера. Когда все необходимые изображения будут выведены в буфере, то готовое окончательное изображение копируется на экран. Процесс копирования идет очень быстро, и эффект мерцания пропадет. Для реализации этой идеи надо создать новый объект
При первом вызове метода