Мы поговорим об этом в следующем разделе. В качестве резюме, причина, по которой мы ограничиваем размещение объекта в данном октанте, состоит в том, что мы используем особую быструю методику z-сортировки. Если кто-то придумает что-то лучшее, пожалуйста, сообщите мне!
При работе с 3D мирами, принципы кодирования, которые мы использовали повсюду в этой книге (упомянутые в первом параграфе этого раздела) являются уже не просто хорошей практикой, они необходимы. Мы будем теперь хранить три координаты, которые представляют каждый визуальный элемент – x, y, и z – в объекте. Это координаты любого объекта в изометрическом мире. Например, персонаж мог бы иметь в изометрическом мире координаты (100, 10, -50). Для отображения этого персонажа на экране, мы должны вычислить, какие координаты x и y должны быть у клипа на экране, чтобы персонаж выглядел находящимся в этих координатах. Поэтому следующий логический шаг состоит в поиске этой взаимосвязи между изометрической системой и системой Flash.
Мы знаем, что изометрическая система связана с системой Flash двумя поворотами (30? и 45?), рассмотренными в предыдущем разделе. Используя наши знания тригонометрии, мы можем спроецировать любую точку из изометрической системы в систему Flash. Это делается за два шага, по одному на каждый поворот. Для проецирования из изометрической системы в систему Flash мы начинаем с тоски в изометрической системе и затем применяем два вращения к координатам. Это в действительности проецирует координаты из изометрической системы в промежуточную систему (после первого вращения), а затем из промежуточной системы в систему Falsh. В процессе первого вращения y-координата не изменяется (поскольку ось y является неподвижной осью, вокруг которой вращается система); во время второго вращения остается неизменной координата x. Для поддержки этого процесса существует математический аппарат. Мы начинаем с координатами в точке (xpp, ypp, zpp). Буквы pp являются математическим соглашением; когда координата x переведена в новую систему, ее обычно называют xp (или x’)