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

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



Давайте посмотрим на операторы слоя Object Definitions. Вначале мы видим это: 1 isometricAS =function (maxx,maxz){ 2 this.maxx =maxx; 3 this.maxz =maxz; 4 this.theta =30; 5 this.alpha =45; 6 this.theta *=Math.PI/180; 7 this.alpha *=Math.PI/180; 8 this.sinTheta =Math.sin(this.theta); 9 this.cosTheta =Math.cos(this.theta); 10 this.sinAlpha =Math.sin(this.alpha); 11 this.cosAlpha =Math.cos(this.alpha); 12 }; Сначала мы создаем сам объект с именем isometricAS. Создавая его как функцию объекта, мы настраиваем его таким образом, чтобы мы могли позднее создавать экземпляры этого объекта вызовом конструктора new isometricAS(). Тут есть два параметра maxx и maxz. Мы рассмотрим их в следующем разделе, поскольку они применяются только в методе calculateDepth(). В строках 4 и 5 мы устанавливаем углы, которые необходимы, чтобы мир был изометрическим - 30? и 45?. Затем, в следующих нескольких строках мы вычисляем синус и косинус этих углов и сохраняем значения. (Это способ не вычислять их каждый раз, когда они нам потребуются.) Далее мы создаем следующий метод для объекта isometricAS: 1 isometricAS.prototype.mapToScreen =function(xpp,ypp,zpp){ 2 var yp =ypp; 3 var xp =xpp*this.cosAlpha+zpp*this.sinAlpha; 4 var zp =zpp*this.cosAlpha-xpp*this.sinAlpha; 5 var x =xp; 6 var y =yp*this.cosTheta-zp*this.sinTheta; 7 //var z =zp*this.cosTheta+yp*this.sinTheta; 8 return [x,y ]; 9 }; Этот метод принимает координаты точки в изометрической системе и проецирует ее x- и y-координаты в систему Flash. Это выполняется с помощью тех же математических вычислений, что мы рассмотрели ранее в этом разделе. Обратите внимание, что строка 7 закомментирована. Ранее в этом разделе, когда мы говорили о математике, я упоминал, что нам не потребуется z-координата, когда мы будем в системе Flash. Я сохранил эту строку ActionScript просто на случай, если она вам понадобится. Если вы когда-нибудь решите отобразить не-изометрический вид, в котором вам нужно будет применить изменения перспективы, то вам понадобится эта координата
Hosted by uCoz