Скачать презентацию IT ШКОЛА SAMSUNG Модуль 1 Основы программирования ПРОСТЕЙШАЯ Скачать презентацию IT ШКОЛА SAMSUNG Модуль 1 Основы программирования ПРОСТЕЙШАЯ

модуль 1 - функции - шарики Андроид.ppt

  • Количество слайдов: 13

IT ШКОЛА SAMSUNG Модуль 1. Основы программирования ПРОСТЕЙШАЯ АНИМАЦИЯ В АНДРОИДЕ IT ШКОЛА SAMSUNG Модуль 1. Основы программирования ПРОСТЕЙШАЯ АНИМАЦИЯ В АНДРОИДЕ

ПРОСТЕЙШАЯ АНИМАЦИЯ 1) Будем работать с шаблоном графического Android-приложения 2) Создайте код, рисующий кружок ПРОСТЕЙШАЯ АНИМАЦИЯ 1) Будем работать с шаблоном графического Android-приложения 2) Создайте код, рисующий кружок @Override protected void on. Draw(Canvas canvas) { // TODO Auto-generated method stub super. on. Draw(canvas); int x=0; Paint paint = new Paint(); canvas. draw. Circle(x, 200, 20, paint); }

ПРОСТЕЙШАЯ АНИМАЦИЯ 3) Добавьте в программу следующий код: public class My. View extends View ПРОСТЕЙШАЯ АНИМАЦИЯ 3) Добавьте в программу следующий код: public class My. View extends View { public My. View(Context context) { super(context); My. Timer timer = new My. Timer(); timer. start(); } int x=0; void next. Frame() {// увеличиваем координату кружка x += 5; invalidate(); // вызываем перерисовку } class My. Timer extends Count. Down. Timer { My. Timer() { // общее время работы таймера 100 сек, // время периодического срабатывания 0. 1 сек super(100000, 100); } @Override public void on. Tick(long millis. Until. Finished) {//вызов функции внешнего класса для смены кадра next. Frame(); } @Override public void on. Finish() { } } @Override protected void on. Draw(Canvas canvas) { super. on. Draw(canvas); Paint paint = new Paint(); canvas. draw. Circle(x, 200, 20, paint); } } Шарик должен улететь вправо

ПРОСТЕЙШАЯ АНИМАЦИЯ Пояснения class My. Timer extends Count. Down. Timer { My. Timer() { ПРОСТЕЙШАЯ АНИМАЦИЯ Пояснения class My. Timer extends Count. Down. Timer { My. Timer() { // общее время работы таймера 100 сек, // время периодического срабатывания 0. 1 сек super(100000, 100); } @Override public void on. Tick(long millis. Until. Finished) { //вызов функции внешнего класса My. Draw для смены кадра next. Frame(); } @Override public void on. Finish() { } } При создании объекта вызывается конструктор суперкласса Count. Down. Timer, при этом устанавливается общее время работы таймера 100 сек, при этом десять раз в секунду будет вызываться функция on. Tick.

ПРОСТЕЙШАЯ АНИМАЦИЯ ПРОСТЕЙШАЯ АНИМАЦИЯ

ПРОСТЕЙШАЯ АНИМАЦИЯ ПРОСТЕЙШАЯ АНИМАЦИЯ

ПРОСТЕЙШАЯ АНИМАЦИЯ public My. View(Context context) { super(context); My. Timer timer = new My. ПРОСТЕЙШАЯ АНИМАЦИЯ public My. View(Context context) { super(context); My. Timer timer = new My. Timer(); timer. start(); } Создаем и запускаем таймер! АНИМАЦИЯ ГОТОВА!

Массивы в анимации 1) В классе public class My. View extends View создайте 4 Массивы в анимации 1) В классе public class My. View extends View создайте 4 массива размерностью 10 (x, y, vx, vy) – они будут отвечать за координаты и скорости 2) Напиши функцию заполнения массива случайными числами в диапазоне от min до max, которая принимает границы в виде значений min и max и возвращает заполненный массив 3) Создайте отдельную функцию заполнения массива, например, такую

Массивы в анимации Массивы в анимации

Массивы в анимации 4) Оформите движение шариков отдельным методом Массивы в анимации 4) Оформите движение шариков отдельным методом

Массивы в анимации 5) Исправьте функцию next. Frame() Массивы в анимации 5) Исправьте функцию next. Frame()

Массивы в анимации 5) Добавьте функцию рисования кружочков 6) Добавьте вызов созданных функций в Массивы в анимации 5) Добавьте функцию рисования кружочков 6) Добавьте вызов созданных функций в нужных частях программы: public My. View(Context context) { super(context); make. Balls(); My. Timer timer = new My. Timer(); timer. start(); }

Задания. ДОМА: ДОДЕЛАТЬ ПРОЕКТ И ПРИНЕСТ ИСХОДНЫЙ КОД И APK Улучшить программу можно разными Задания. ДОМА: ДОДЕЛАТЬ ПРОЕКТ И ПРИНЕСТ ИСХОДНЫЙ КОД И APK Улучшить программу можно разными способами, например, 1. Добавить цвет шарикам (для этого следует создать еще один массив) 2. Нетрудно сделать так, чтобы шарики не вылетали за пределы экрана, для этого нужно добавить проверки в функцию move. Balls и менять скорости на противоположные: //. . . if (x[i] < 0 || x[i] > this. get. Height()){ vx[i] = vx[i]; } //. . . аналогично для y или вылетевшие шарики “возвращать” на экран (генерировать координаты заново) //. . . if (x[i] < 0 || x[i] > this. get. Height()){ vx[i] = rand(0, this. get. Width()); vy[i] = rand(0, this. get. Height()); } в этом коде уже можно использовать функции получения размера, потому что они вызываются в процессе работы, 13