Создание анимации
Создание анимации
Теперь нужно научиться перемещать объект по экрану. Если это делать достаточно быстро, то у пользователя создается ощущение непрерывного воспроизведения анимации. Для этого следует создать метод updatePositions, который позволит перемещать изображение. Пока ограничимся движением вниз и вправо. Соответствующий код приведен в листинге 11.4.
Листинг 11.4
/// <summary>
/// Координата X для рисования сыра
/// </summary>
private int cx = 0;
/// <summary>
/// Координата Y для рисования сыра
/// </summary>
private int cy = 0;
private void updatePositions() {
cx++;
cy++;
}
Переменные cx и cy содержат текущие координаты кусочка сыра. Меняя значения этих координат, можно управлять расположением изображения на экране. Теперь нужно переписать код для события Form1_Paint, как это показано в листинге 11.5.
Листинг 11.5
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e) {
// Текущая позиция сыра
e.Graphics.DrawImage(cheeseImage, cx, cy);
}
Теперь при каждом вызове метода Paint программа перерисовывает изображение сыра в указанном месте. Но программа должна самостоятельно перемещать изображение через определенные промежутки времени. Также нужно иметь возможность управлять скоростью перемещения картинки. Для этой задачи подойдет объект Timer. Соответствующий элемент нужно добавить на форму.
Следует помнить, что во время работы таймера смартфон не может использовать сберегающий энергорежим, так как устройство считает, что программа находится в активном состоянии, даже если она свернута. Это негативно влияет на работу аккумуляторов, сокращая срок работы без подзарядки. Поэтому нужно останавливать таймер, когда программа работает в фоновом режиме, и включать его снова при активации приложения.
Но вернемся к настройкам таймера. Интервал срабатывания таймера должен составлять 50 миллисекунд, а свойство Enabled должно получить значение False. Когда таймер будет включен, код в методе Tick будет срабатывать 20 раз в секунду. При создании таймера нельзя для свойства Enable устанавливать значение True, так как метод timer1_Tick попытается отобразить изображения до того, как они будут загружены. Включать таймер можно только тогда, когда все необходимые картинки будут загружены, иначе программа выдаст сообщение об ошибке. В нашем примере таймер активируется в конструкторе формы после загрузки изображения сыра, как это показано в листинге 11.6.
Листинг 11.6
public Form1() {
//
// Required for Windows Form Designer support.
//
InitializeComponent();
// Получим ссылку на сборку
System.Reflection.Assembly execAssem =
System.Reflection.Assembly.GetExecutingAssemblу();
// Получим доступ к картинке с сыром
cheeseImage = new System.Drawing.Bitmap
(execAssem.GetManifestResourceStream(@"Bouncer.cheese.gif"));
// Включаем таймер
this.timer1.Enabled = true;
}
Теперь при запуске программы конструктор загружает картинку и включает таймер.
Настало время создать код для события Tick. Система перерисовывает содержимое экрана только при определенных условиях. Мы можем заставить систему перерисовать экран при каждом изменении местоположения картинки с помощью метода Invalidate. Таким образом, через определенные промежутки времени приложение меняет координаты изображения и обновляет экран, чтобы пользователь увидел картинку на новом месте. Соответствующий код приведен в листинге 11.7.
Листинг 11.7
private void timer1_Tick(object sender, System.EventArgs e) {
updatePositions();
Invalidate();
}
После запуска программы кусочек сыра по диагонали переместится в правый нижний угол экрана. Когда изображение достигнет края экрана, оно продолжит свое движение и скроется. При движении изображение сыра немного мерцает, что очень раздражает всех пользователей. В дальнейшем этот недостаток будет исправлен.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Контроль анимации
Контроль анимации Следующей задачей является обеспечение гарантий того, что тип Timer сместит текущий фрейм визуализации в рамках PictureBox. Снова напомним, что число фреймов в цикле анимации зависит от текущей скорости автомобиля. Необходимость изменений изображений в PictureBox
Эффекты анимации
Эффекты анимации Если бы мы работали в Word или Publisher, то на этом, собственно, пришлось бы и остановиться – что можно сделать с неподвижной картинкой? Но слайду в PowerPoint совершенно нет нужды быть неподвижным! Напротив, ему это в корне противопоказано.Надписи, картинки и прочие
Создание анимации
Создание анимации Теперь нужно научиться перемещать объект по экрану. Если это делать достаточно быстро, то у пользователя создается ощущение непрерывного воспроизведения анимации. Для этого следует создать метод updatePositions, который позволит перемещать изображение. Пока
Глава 6 СОЗДАНИЕ КАРТИНОК, АНИМАЦИИ И ИГР
Глава 6 СОЗДАНИЕ КАРТИНОК, АНИМАЦИИ И ИГР Где искать мелодии и как их создавать самостоятельно, вы уже знаете. Эта глава будет посвящена картинкам, анимациям и играм для мобильных телефонов. Прочитав эту главу, вы научитесь самостоятельно создавать анимированные картинки
Создание flash-анимации
Создание flash-анимации Очень многие современные мобильные телефоны имеют среди прочего программного обеспечения проигрыватель flash-анимации. Это позволяет загружать файлы с расширением SWF и просматривать их на экране мобильного.В этом разделе рассмотрим, как создать
Создание покадровой анимации
Создание покадровой анимации Предположим, что нужно создать небольшой учебный фильм для средней школы. Этот фильм будет демонстрировать процесс деления клетки. Вы еще не забыли школьный курс биологии? Самое время его вспомнить.Наш фильм будет содержать двенадцать
Создание кадров анимации
Создание кадров анимации Итак, мы хотим создать последовательность кадров, т. е. покадровую анимацию, фильм. Давайте же создадим ее.Из главы 1 мы помним, что каждый кадр покадровой анимации — ключевой. Мы уже говорили об этом, так что сейчас не будем повторяться.Один
Правка анимации
Правка анимации Любое, даже, на первый взгляд, совершенное творение может быть еще немного усовершенствовано. А поскольку в мире нет ничего совершенного, переделывать уже сделанное нам придется очень часто.Фильмы Flash — не исключение из этого правила. Посмотрим, что
Два вида трансформационной анимации
Два вида трансформационной анимации Flash позволяет создавать трансформационную анимацию двух видов: движение и морфинг. Оба этих вида имеют практически одинаковые возможности, но применяются к разным видам элементов изображения.Первый вид трансформационной анимации —
Еще раз об "оборванной" анимации
Еще раз об "оборванной" анимации Заканчивая разговор о движении, укажем на "подводные камни", которые могут встретиться на пути начинающего Flash-аниматора. И, разумеется, поговорим о том, как эти "камни" обойти.Как мы помним, "оборванная" анимация получается в том случае, когда
Глава 13 Создание составной анимации
Глава 13 Создание составной анимации Ух, как хорошо мы поанимировали в главах 11 и 12! Все у нас теперь движется, плавает, ползает и совершает прочие телодвижения, подчиняясь нашему замыслу. Воистину, Flash 8 — король анимации.А теперь на время перестанем им восторгаться и
Создание составной анимации
Создание составной анимации Давайте создадим составную анимацию, демонстрирующую распад прямоугольника на части. Но сначала создадим сам "предмет распада", если еще этого не сделали. Нарисуем на рабочем листе прямоугольник и преобразуем его в обычный графический
Параметры внутренней анимации
Параметры внутренней анимации Теперь давайте выделим на рабочем листе экземпляр нашего анимированного образца и посмотрим, что нам предлагает панель Properties. Если это экземпляр графического образца, эта панель примет вид, показанный на рис. 13.4. В данный момент нас
Создание многослойной анимации
Создание многослойной анимации Создадим новый документ Flash и нарисуем на рабочем листе круг. Преобразуем его в графический образец и дадим ему имя Круг. В результате этих действий мы получим на рабочем листе экземпляр этого образца.Теперь можно приступать к созданию
Управление воспроизведением анимации
Управление воспроизведением анимации Обычно каждый клип начинает воспроизводиться сразу же после загрузки и воспроизводится до последнего кадра его анимации. Однако, используя сценарии, мы можем управлять этими процессами, в частности, останавливать и запускать