PIZiadas GRÁFICAS

PIZiadas GRÁFICAS

Мой мир дюйма.

Графического программирования: Анимированные обработки графики [JAVA]

motor_animaciónПосле определения первого интерфейс для рисовать графические объекты EN JAVA, мы будем осуществлять анимационный движок что позволяет управлять динамикой применения и, позже, добавить взаимодействие с пользователем.

Двигатель отвечает за вызов функции, которые способствуют каждого из графических объектов базы.

Un Движок игры это термин, относящийся к серии программирование подпрограмм позволяющий дизайн, создание и представление игра.

Точно так же есть игры двигателей, работающих в обоих игровых консолей и Операционная система. Основные функциональные возможности игрового движка является обеспечение движок рендеринга для 2D-и3Ре, Физический движок Детектор столкновения, звуки, Сценарии, анимация, искусственный интеллект, сетей, потокового, управление памятью и граф сцены.(W).

Наша первая реализация двигатель будет опираться на функциональные возможности, которые мы имеем в класс, отвечающий за хранение и представление: “Классная доска“. Определить Новый интерфейс чтобы добавить новые функциональные, Возможность анимация объекта.

Интерфейс Animable

Новые “интерфейс” объявить единственный метод, который будет включать в себя классы, которые реализуют.

пакет график;

общественность интерфейс Animatable {
	общественность аннулированию душа();
}

Например, мы можем изменить к одной из групп, чтобы быть аниме графикой, или создать новый, который расширяет функциональность других, как в случае нового класса Point2DAnimable что расширяет класс Point2D для хранения координат, и реализует интерфейс анимируемыми стимулирует функцию только изменяет координаты хранятся случайным.

пакет график;

Открытый класс Point2DAnimable расширяется Point2D инвентарь Animatable{
	общественность Point2DAnimable(десятичного X, десятичного год){
		супер(X,год);
	}
	общественного недействительными душа() {
		X   =(десятичного)(Math.random()*5);
		рентгеновских =(десятичного)(Math.random()*5);
		и   =(десятичного)(Math.random()*5);
		Y-=(десятичного)(Math.random()*5);
	}
}

Добавлять новые объекты к доске класса системы хранения данных от главного applett

	личное iniciarElementos пустоту() {
		pizarra.addElement(новые Point2DAnimable(50,50));
		pizarra.addElement(новые Point2D(70,50));
		pizarra.addElement(новые Point2D(50,70));
	}

Для анимации объектов в базе данных, реализация нового метода в классе Доска, который будет анализировать, являются ли они Animatable, В этом случае вызов функции само побуждает каждый объект

	общественных Anima пустоту(){
		Перечень перечисление = bd.elements();
		Объект OB;
		в то время как(enum.hasMoreElements()){
			OB = enum.nextElement();
			если(OB InstanceOf Animable){
				((Animatable) ли).душа();
			}
		}

	}

Анимация двигателя

Процесс, который обрабатывает обновления анимации, что мы называем анимации двигателя (выполнен в виде нити или “Нить“). Ваша ответственность заключается в вызове процедуры анимации мы реализовали в классе Классная доска.

В Операционная система, un нить, прядь или поток является наименьшей единицей обработки, которые могут быть назначены по операционная система.

Нить (Нить) это функция, которая позволяет приложению выполнять несколько задач одновременно (одновременно). Различные темы, имеют ряд общих ресурсов, таких как память, открытые файлы, Проверка подлинности ситуации, и т.д.. Этот метод упрощает разработку приложений, которые должны выполнять различные функции одновременно.

Нить в основном задачи, которые могут выполняться параллельно с другой задачей.(W)

Наша анимация двигателя реализации класса “Runnable” иметь запуска и остановки методы.

пакет график;

Открытый класс MotorGrafico инвентарь Runnable {
длинный интервал = 100;

Мы будем иметь ряд переменных булевой управления, чтобы приостановить анимацию.

boolean parar = false;
Остановка общественного недействительными() { остановить = TRUE; }

логическое паузу = False;
пустота pausar() { остановилась = !замедлять; }

Конструктор класса получит объект “Классная доска” в качестве параметра. Подавать знать, что элемент имеет основную функцию анимации. Этот объект будет хранить его в переменной, чтобы ссылаться на него позже.

частный Доска графика;
общественность MotorGrafico(Доска графика) {
	это.= ЧИСЛО;
}

Перед запуском потока мы должны гарантировать, что есть активные, В этом случае мы должны уничтожить его, чтобы не запускать ничего более чем одним процессом, в то время.

частный летучий Тема шоры;
общественного недействительными начало() {
	если(шоры!=нулевой){
		шоры =нулевой;
	}
	шоры = новое Нить(это);
	blinker.start();
}

Чтобы остановить анимацию двигателя разрушит нить, просто присвоение нулевого значения переменной, которая управляет “Нить”.

общественность аннулированию остановить() {
	шоры = нулевой;
}

Основной процесс выполняется в функции “работать()”.

Сначала проверьте, мы не хотим, чтобы остановить выполнение программы, и убедитесь, что нить правильно. Раз так, миллисекунд приостановить выполнение программы с призывом “спать” год, возобновить, анимация вызова метода. Еще раз анимированных графических элементов, чтобы привлечь (перекрашивание)

общественного недействительными работать() {
	Нить thisThread = Нить.CurrentThread();

	в то время как (!остановить && шоры == thisThread) {
		стараться {
			thisThread.sleep(интервал);
		}  поймать (InterruptedException электронной) {}

		если (Графа != нулевой && !замедлять) {
			оживить();
			graf.repaint();
		}
	}
}

Функция “оживить” вызвать функцию “душа()” класс “Классная доска”, отвечают за хранение данных графика.

	частных недействительным оживить() {
		graf.anima();
	}
}

Выполнение программы

Образец класс должно включать декларацию объекта “MotorGrafico” , которая пройдет соответствующий параметр расположение графического дисплея или “Классная доска”.

Открытый класс Пример 1 расширяется Апплета {
	Доска шифер =новое Классная доска();
	MotorGrafico двигателя =новое MotorGrafico(шифер);

Также, мы начинаем анимация двигатель, вызвав метод “начало()”

	общественность Пример 1() бросает HeadlessException {
		это.SetLayout(новое GridLayout());
		это.добавлять(шифер);
		iniciarElementos();
		motor.start();
	}

Остается только добавить некоторые элементы базы данных Animatable графики выполнения упражнения. Мы увидим, что некоторые моменты не двигаются, при реализации интерфейса “Animatable” если они случайно.

	частный аннулированию iniciarElementos() {
		pizarra.addElement(новое Point2DAnimable(50,50));
		pizarra.addElement(новое Point2DAnimable(60,50));
		pizarra.addElement(новое Point2DAnimable(50,80));
		pizarra.addElement(новое Point2DAnimable(50,70));
		pizarra.addElement(новое Point2D(70,50));
		pizarra.addElement(новое Point2D(50,70));
	}
JAVA

Курс JAVA