English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



Так что, когда мы записываем это на ActionScript, мы используем метод Math.abs() объекта Math Flash, для того чтобы быть уверенными, что значения положительны. Поскольку мы назначаем значения на базе самих плиток, мы можем использовать целые для x и z. Например, cell 3_5 имела бы x равным 3 и z равным 5. Поскольку мы имеем дело лишь с одним уровнем (плоская поверхность), значение y остается равным 0. Каждая плитка содержит свою глубину Чтобы посмотреть это в действии, откройте файл depth.fla из папки Chapter08 на CD. В этом файле есть сетка 10 на 10 плиток, созданная в изометрическом мире. Когда каждая плитка создана, мы назначаем ей глубину, используя метод calculateDepth(). В главной шкале времени есть три слоя: Object Definitions, Actions, и Assets. Слой Assets содержит один клип под названием floor. Этот клип содержит клип плитки и клип шара. Слой Actions содержит большое количество кода ActionScript, необходимого для создания плиток, изменения некоторых плиток для отображения объектов, и перемещения клипа шара. Слой Object Definitions содержит тот же код ActionScript, что и файл примера position.fla, сделанный в предыдущей главе. Метод calculateDepth() мы сейчас не рассматриваем. Давайте взглянем на него сейчас: 1 isometricAS.prototype.calculateDepth =function(x,y,z){ 2 var leeway =5; 3 var x =Math.abs(x)*leeway; 4 var y =Math.abs(y); 5 var z =Math.abs(z)*leeway; 6 var a =this.maxx; 7 var b =this.maxz; 8 var floor =a*(b-1)+x; 9 var depth =a*(z-1)+x+floor*y; 10 return depth; 11 }; Этот метод содержит математические уравнения, которые мы рассматривали ранее, переведенные в код ActionScript. В строке 2 мы создаем переменную с именем leeway. Мы умножаем на это число как x, так и z, которые передаются в функцию. Это позволяет нам разделить каждую плитку по глубине, по крайней мере, на величину leeway (5). Так одна плитка могла бы иметь глубину 250, а следующая за ней плитка имела бы глубину 255
Hosted by uCoz