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

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

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

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

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

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

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 210 >> Следующая

3 speed = 5;
В строке 1 мы создаем экземпляр объекта isometricAS. В следующей стро мы
создаем объект с именем ball, который будем использовать для хранеш всей
информации о клипе ball, который мы перемещаем по изометрическо миру. Мы
инициализируем этот объект в положении (0, 0, 0) и назначаем с\ ссылки на
клип ball и клип shadow. В строке 3 устанавливаем скорость. Это п| сто
определяет, на сколько будет перемещаться шар с каждым нажатием кла| ши
направления.
а 8. Изометрический взгляд на мир
203
Далее мы создаем функцию с именем captureKeys():
function captureKeys() {
if (Key.isDown(Key.RIGHT)) I ball.x += speed;
} else if (Key.isDown(Key.LEFT)) {
ball.x -= speed;
}
if (Key.isDown(Key.UP)) { ball.z += speed;
} else if (Key.isDown(Key.DOWN)) {
10 ball.z -= speed;
11 )
12 }
i ча эта функция вызвана, она проверяет, какая кнопка направления нажата
.шный момент. Если что-то нажато, то она изменяет координаты шара в на-
тлениях х или г изометрической системы на величину speed.
11иже приведена функция, которая устанавливает положения шара и тени
жране:
function placeBall() {
var temp = iso.mapToScreen(ball.x, ball.у, ball.z); ball.clip._x =
temp[0];
4 ball.clip._y = temp[l];
var temp = isо.mapToScreen(bal1.x, 0, ball.z); e ball.shadowClip._x =
temp[0];
ball.shadowClip._y = temp[l];
В }
троке 2 мы вызываем метод mapToScreen() объекта isometricAS, передавая N
то координаты шара. Результат сохраняется в виде массива с именем temp,
(ем мы используем значения этого массива для размещения шара на экране
¦ роки 3 и 4). В строке 5 делаем в основном то же, что мы делали в
строке 2, за члючением того, что мы передаем 0 в качестве значения
координаты у. Затем ьользуем этот массив для размещения клипа тени на
экране. Мы передаем учение 0 для координаты у потому, что тень должна
всегда быть на земле, оординатау для земли равна 0. Но координаты х и z
тени должны быть всегда кими же, как у шара. Это добавляет очень простой
и полезный эффект объекта, передвигающегося в ЗС-срсдс. Снова ссылаясь на
игру Мини-гольф
I lectrotank, вы можете увидеть, как полезно нечто подобное в такой
игре,
о особенно заметно, когда шар пролетает над наклонной плоскостью. Вы
мо-ге видеть тень, движущуюся вниз по наклонной плоскости, в то время к
шар летит в воздухе.
204
Часть 2. Исследование осн
Теперь мы подошли к функции с названием changeY(). Как вы можете пред
положить, эта функция изменяет ^-координату шара. Она вызывается, когда
н; жимается любая из двух кнопок в правом нижнем углу экрана.
1 function changeY(num) {
2 ball.у += num;
3 if (ball.y>0) (
4 ball.у = 0;
5 )
6 }
Когда эта функция вызывается, координата шара у увеличивается на значенг
переданного в функцию параметра. Если координата у получается ниже по то
мы устанавливаем ее равной значению пола. Так что шар не может пройт
через пол.
Наконец, мы доходим до события onEnterFrame:
1 _root.onEnterFrame = functionf) {
2 captureKeys();
3 placeBall();
4 ignoreMe();
5 } ;
Это событие вызывает captureKeys() и placeBallQ в каждом кадре. Не
обращайЦ внимания на функцию ignoreMe() - она лишь помогает отображать
координа на экране для вас, когда вы тестируете файл.
Это все! Вы встали на путь создания изометрического мира. Лучше всего г
лать ваш изометрический мир построенным из плиток. Вы увидите пример этог
в заключительной части этой главы.
Посмотрите премиальный файл position_with_gravity.fla в папке Chapter на
CD. Он похож на файл position.fla; главное отличие состоит в том, что i
имеет гравитацию, так что шар может подпрыгивать в изометрическом мире
Сортировка по Z
Мы наталкивались на концепцию z-сортировки уже несколько раз в этой глаг
и сейчас мы можем, наконец, рассмотреть ее в деталях. Еще раз, z-сортиров
является термином, используемым для описания создания порядка размещен!
клипов. Если два клипа перекрываются, они, конечно, не могут быть оба
сверх Тот, который на вершине, имеет самую большую глубину. Вы, возможно,
за комы с концепцией глубины во Flash, но давайте освежим ее немного и
пер дем к фактам о глубине во Flash, которых вы, возможно, не знаете.
I >ава 8. Изометрический взгляд на мир
205
Каждая шкала времени во Flash-фильме может иметь до 16 384 уровней глу-
мны, и каждая глубина может содержать только один клип. Когда вы вручную
|| шещаете клипы в шкале времени, они получают значения глубины, начиная
16 383. Каждый дополнительный клип, вручную размещенный в шкале вре-1спи,
имеет большую глубину, чем предыдущий, со значениями, изменяющиеся в
направлении к 0. Когда вы используете код ActionScript для создания эк-
рмпляров клипов, вы присваиваете им глубину. Компания Macromedia реко-
Кпдует (и это обычная практика) назначать клипам, созданным с помощью ко-
р ActionScript, положительные значения глубины. Глубина 1 не должна быть
|пята прежде глубины 2. Это означает, что вы можете, например,
использовать ItachMovieQ и назначить новому клипу глубину 2000000.
Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 210 >> Следующая