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

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



Мы не будем здесь перечислять эти функции, поскольку они идентичны тем, которые мы видели уже несколько раз. Ниже приведена функция is pointRectangleDetection(), которая обнаруживает столкновения между точкой и прямоугольником. 1 function pointRectangleDetection(point,rectangle){ 2 //положение точки 3 var x =point.x; 4 var y =point.y; 5 //левая и правая стены 6 var x1 =rectangle.x; 7 var x2 =x1+rectangle.width; 8 //верхняя и нижняя стены 9 var y1 =rectangle.y; 10 var y2 =y1+rectangle.height; 11 //проверьте находится ли точка в пределах стен 12 if (x>x1 &&x<x2 &&y>y1 &&y<y2){ 13 trace("Collision Detected!!"); 14 } 15 } Функция принимает два параметра, point и rectangle, которые ссылаются на два объекта. Сначала создаются две переменные, которые представляют положение точки. Затем в строках 6-10, x и y координаты стен присваиваются переменным. Наконец, в строке 12 начинается блок условия, которые проверяет, является ли координата точки x больше чем левая стена, но меньше чем правая стена, и что координата точки y больше чем верхняя стена и меньше чем нижняя стена. Если это условие выполнено, то столкновение произошло, а оператор trace выполняется. Наконец (хотя это не показано выше), событие onEnterFrame вызывает функции getTempPositions(), pointRectangleDetection(), и render() в каждом кадре. Обнаружение столкновения прямоугольника с прямоугольником Подобно обнаружению столкновения точки с прямоугольником, обнаружение столкновения между двумя прямоугольниками выполняется легко. Rectangle_a сталкивается с rectangle_b, если все из ниже перечисленного истинно: 1. Координата x правой стенки прямоугольника rectangle_a больше чем координата x левой стенки прямоугольника rectangle_b. 2. Координата x левой стенки rectangle_a меньше чем координата x правой стенки rectangle_b. 3. Координата y нижней стенки rectangle_a больше чем координата y верхней стенки rectangle_b
Hosted by uCoz