Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 10.07.2011, 12:43
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 1  
Ответить с цитированием
Scorp2008

Регистрация: Dec 2009
Сообщений: 42
По умолчанию Пересечение линии и квадрата (для игры)

Всем привет еще раз
Вот раздобыл функцию пересечения линии и квадрата, собираюсь использовать я их для определения столкновения пули и врага в игре. До этого делал не совсем такие игры, а так как с математикой туго, то прошу совета, вот сама функция:
Код AS3:
		public static function InterLineSqr(p1, p2, p3, r) {
			var res = [];
			var x1 = p3.x-r;
			var x2 = p3.x+r;
			var y1 = p3.y-r;
			var y2 = p3.y+r;
			var dx = p1.x-p2.x;
			var dy = p1.y-p2.y;
			var dd = dx*dx+dy*dy;
			//
			//if ((p1.x>x1 && p1.x<x2) || (p2.x>x1 && p2.x<x2) || (p1.x<x1 && p2.x>x2) || (p2.x<x1 && p1.x>x2) || (p1.y>y1 && p1.y<y2) || (p2.y>y1 && p2.y<y2) || (p1.y<x1 && p2.y>y2) || (p2.y<x1 && p1.y>y2)) {
			//if ((p1.y>y1 && p1.y<y2) || (p2.y>y1 && p2.y<y2) || (p1.y<x1 && p2.y>y2) || (p2.y<x1 && p1.y>y2)) {
			var inter;
			inter = InterLineLine(p1, p2, {x:x1, y:y1}, {x:x1, y:y2});
			if (!(inter<0)) {
				res.push(inter);
			}
			inter = InterLineLine(p1, p2, {x:x1, y:y1}, {x:x2, y:y1});
			if (!(inter<0)) {
				res.push(inter);
			}
			inter = InterLineLine(p1, p2, {x:x2, y:y2}, {x:x2, y:y1});
			if (!(inter<0)) {
				res.push(inter);
			}
			inter = InterLineLine(p1, p2, {x:x2, y:y2}, {x:x1, y:y2});
			if (!(inter<0)) {
				res.push(inter);
			}
			//}   
			//}
			return res;
		}
насколько я понимаю p1 и p2 - это начало и конец линии (точки), а что такое p3 и r? И как её использовать если можно подробнее? Допустим имеется массив с врагами vragi и герой который стреляет, как я понимаю после нажатия кнопки мыши должны определяться точки линии (пуля типа) и проверяться со всем массивом не пересеклась ли линия с квадратом.. но вот как это в коде выглядит не совсем представляю. спасибо

Создать новую тему   Часовой пояс GMT +4, время: 01:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.