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

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



4. Координата y верхней стенки rectangle_a меньше чем координата y нижней стенки rectangle_b. Они сталкиваются! Для просмотра примера, откройте файл rectangle_rectangle.fla из папки Chapter05 на CD. Код ActionScript в этом файле очень схож с предыдущим примером, поэтому мы рассмотрим лишь функцию, которая обрабатывает обнаружение столкновения, RectangleRectangleDetection(). Ниже приведен ее код на ActionScript: 1 function RectangleRectangleDetection(rectangle_a, .rectangle_b){ 2 //левая и правая стены 3 var x_a1 =rectangle_a.x; 4 var x_a2 =x_a1+rectangle_a.width; 5 //верхняя и нижняя стены 6 var y_a1 =rectangle_a.y; 7 var y_a2 =y_a1+rectangle_a.height; 8 //левая и правая стены 9 var x_b1 =rectangle_b.x; 10 var x_b2 =x_b1+rectangle_b.width; 11 //верхняя и нижняя стены 12 var y_b1 =rectangle_b.y; 13 var y_b2 =y_b1+rectangle_b.height; 14 //проверьте, находится ли точка в пределах стен 15 if ((x_a2>x_b1 &&x_a1<x_b2)&&(y_a2>y_b1 &&y_a1<y_b2)) 16 { 17 trace("Collision Detected!!"); 18 } 19 } Эта функция принимает два параметра, rectangle_a и rectangle_b, которые ссылаются на объекты. В строках 2-14, мы создаем переменные для хранения координат левой, правой, верхней и нижней стенок обоих прямоугольников. Затем, в строке 15, оператор if использует логику, которую мы упоминали выше для определения, будет ли иметь место столкновение. Он сравнивает координаты стенок в rectangle_a с координатами стенок в rectangle_b. Если условие выполняется, то прямоугольники сталкиваются, и выполняется оператор trace. Обнаружение столкновения со сложными фигурами В этой главе вы исследовали логику независимого от кадров обнаружения столкновения и скрипты для столкновений окружности с линией (или столкновений точки с линией, если вы устанавливаете радиус в 0). Это гораздо мощнее, чем вы могли бы представить. С этим знанием, вы можете создавать простые или сложные фигуры без какой-либо слишком запутанной математики
Hosted by uCoz