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

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



В строке 8 мы возвращаем значения x и y (которые являются координатами в системе Flash) в виде массива. Последний метод объекта isometricAS, который мы будем рассматривать в этом разделе, делает нечто, что мы еще не обсуждали: 1 isometricAS.prototype.mapToIsoWorld =function(screenX, .screenY){ 2 var z =(screenX/this.cosAlpha-screenY/ .(this.sinAlpha*this.sinTheta))* .(1/(this.cosAlpha/this.sinAlpha+ .this.sinAlpha/this.cosAlpha)); 3 var x =(1/this.cosAlpha)*(screenX-z*this.sinAlpha); 4 return [x,z ]; 5 }; Эта функция проецирует координаты (x, y) из системы Flash в изометрическую систему. Поскольку у нас есть лишь x- и y-координаты из системы Flash, мы не можем спроецировать положение точки в координаты (x, y, z) в изометрической системе; мы можем лишь спроецировать его на две координаты. Этот метод полезен, когда мы хотим захватить положение курсора мыши пользователя и затем вычислить его координаты в изометрическом мире. Если вы когда-нибудь играли в игру Минигольф (Mini Golf) от Electrotank, то вы видели, как это используется; когда вы перемещаете курсор вокруг персонажа, персонаж крутится за ним. Затем, когда вы кликаете, персонаж ударяет по шару. Для вычисления угла, который курсор мыши образует с персонажем, мы проецируем координаты мыши в изометрический мир. Угол, как он виден на экране, не является истинным углом в изометрическом мире. Мы не собираемся использовать этот метод в данном разделе, но мы покажем его прямое применение в последнем разделе этой главы. Я не собираюсь описывать математику, использованную в приведенных выше уравнениях, поскольку она довольно трудна, но я скажу вам, что я использовал уравнения из метода mapToScreen() и двигался от них в обратном направлении. Выберите кадр в слое Actions и откройте панель Actions. Давайте посмотрим на первые три строки кода ActionScript: 1 iso =new isometricAS(); 2 ball ={x:0,y:0,z:0,clip:floor.ball, .shadowClip:floor
Hosted by uCoz