Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Секреты разработки игр в Macromedia Flash MX - Макар Дж.

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 20 21 22 23 24 25 < 26 > 27 28 29 30 31 32 .. 210 >> Следующая

объекта; она теряется, как тепло, в результате трения, и объект
замедляется. Например, когда вы ведете вашу машину и ударяете по тормозам
(хорошо, даже если вы в действительности не касаетесь педали тормоза),
машина испытывает трение к ее пользе и плавно останавливается. Если вы
затем замерите температуру шин, то вы заметите, что они горячие. (Мы
будем обсуждать кинетическую энергия в дальнейшем в гл. 6, "Реакция на
столкновения".)
Во Flash MX есть два способа работы с трением: правильный способ и
достаточный способ. В этом разделе мы рассмотрим оба.
Реальное трение
Если вы тащите коробку по полу справа налево, то сила трения действует
влево, противоположно направлению векторной скорости. Векторная скорость
коробки будет стремиться к нулю с постоянным замедлением. Уравнение для
трения скольжения выглядит так:
F =u*mass*gravity
Величина mass*gravity предствляет собой вес объекта. Так что чем больше
вес объекта, тем больше трение, которое будет противодействовать движению
скольжения объекта. Множитель и известен как коэффициент трения (также
иногда называемый коэффициентом трения скольжения).
лава 4. Основы физики
81
Коэффициент трения является числовым значением между 0 и 1. В реальной
изни этот множитель определяется экспериментально и отличается для каждой
р шимодействующей поверхности объекта. Например, влажный ледяной куб на
резиновом полу может иметь очень низкий коэффициент трения (.01), в то
нремя как теннисные туфли на том же полу могут иметь более высокий
коэффициент трения (.2). В ActionScript вы можете просто выбрать значение
для и в зависимости от вида поверхности, с которой имеете дело.
Используя второй закон Ньютона, мы можем определить замедление в
результате трения:
F =mass*accel =u*mass*gravity
Сокращая mass в обеих частях уравнения, мы получаем:
accel =u*gravity
Эта переменная accel будет использована в уравнениях векторной скорости,
с которыми мы будем работать. Ниже представлены шаги, которые вам нужно
выполнить для реализации трения.
1. Найдите ускорение в результате трения, используя уравнение
accel=u*gravity.
2. Примените значение accel к векторной скорости в каждом кадре (точно
так же, как мы делали с ускорением), пока векторная скорость не достигнет
нуля.
Прекратите применение переменной, когда скорость достигнет нуля. Если вы
не сделаете этого, объект станет на самом деле двигаться в
противоположном направлении. Помните, что отрицательное ускорение
является замедлением.
82 Часть 2. Исследование основ!
(c)
Чтобы понаблюдать это в действии, откройте файл roll.fla в папке
Chapter04. В этом файле мы перемещаем шар в направлении х. Он замедляется
под действием трения до остановки. Ниже приведен использованный для этого
код ActionScript.
1 xmov = 10;
2 gravity = 2;
3 и = .2;
4 accel = u* gravity;
5 _root.onEnterFrame = function!) {
6 if (Math.abs(xmov) >= Math.abs(accel)) {
7 if (xmov>0) {
8 xmov -= accel;
9 } else if (xmov<0) {
10 xmov += accel;
11 1
12 } else {
13 xmov = 0;
14 }
15 ball._x += xmov;
16 ) ;
В строке 1 мы сообщаем шару начальную векторную скорость так, чтобы он
имел некоторый ее запас для движения до остановки. Затем мы определяем
переменную гравитации и постоянную трения и. В строке 4 мы используем
гравитацию и постоянную трения для нахождения значения ускорения,
возникают щего в процессе трения. Выражение if в событии onEnterFrame
нужно для того, чтобы удостовериться, что мы прибавляем или вычитаем
ускорение правильна (в зависимости от направления движения). Выражение if
также контролирует] что произойдет с шаром, если векторная скорость
меньше, чем ускорение; если такое происходит, то в следующем кадре шар
должен остановиться.
Достаточный подход к описанию трения
В то время как метод, обсуждаемый выше, представляет собой корректный
способ обработки сил трения, он может несколько запутанным и тяжеловесным
со всеми этими выражениями if для проверки. Ниже приводится более быстрый
и простой способ обработки трения и достижения визуально очень похожего
результата.
1. Выберите число между 0 и 1. Давайте назовем это число ослаблением.
2. Умножайте ослабление на векторную скорость в каждом кадре.
Дело сделано!
Глава 4. Основы физики
83
Если ослабление равно 1, то векторная скорость никогда не изменяется.
Если ослабление равно 0, то векторная скорость равна 0 после кадра 1.
Если ослабление имеет значение между 0 и 1, то скорость будет стремиться
к 0 в каждом кадре. Для просмотра примера откройте файл roll2.fla в папке
Chapter04 на CD. Как в предыдущем примере, в этом фильме представлен шар
с начальной векторной скоростью, скользящий до остановки ... ладно,
отчасти. Для начала давайте посмотрим на код ActionScript:
1 xmov = 10;
2 decay = .95;
3 _root.onEnterFrame = function() {
4 xmov * = decay;
5 ball._x += xmov;
6 } ;
О Как вы видите, это гораздо более простой способ использования
трения (чем, вероятно, объясняется, что это также наиболее часто
Предыдущая << 1 .. 20 21 22 23 24 25 < 26 > 27 28 29 30 31 32 .. 210 >> Следующая