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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.08.2006, 15:02
[G@ng$t@]Un1t вне форума Посмотреть профиль Отправить личное сообщение для [G@ng$t@]Un1t Найти все сообщения от [G@ng$t@]Un1t
  № 11  
Ответить с цитированием
[G@ng$t@]Un1t
[+ 1.4 26.12.2005]
[+ 3 26.06.06]
[+3 24.08.06]
 
Аватар для [G@ng$t@]Un1t

Регистрация: Dec 2005
Сообщений: 61
2DarkLight: Ну блин чо то я не очень врубился в твой вариант, привиди примерный код. А так это понятно что мой вариант тормознутей в разы.
__________________
Это все что я хотел сказать.

Старый 17.08.2006, 15:06
[G@ng$t@]Un1t вне форума Посмотреть профиль Отправить личное сообщение для [G@ng$t@]Un1t Найти все сообщения от [G@ng$t@]Un1t
  № 12  
Ответить с цитированием
[G@ng$t@]Un1t
[+ 1.4 26.12.2005]
[+ 3 26.06.06]
[+3 24.08.06]
 
Аватар для [G@ng$t@]Un1t

Регистрация: Dec 2005
Сообщений: 61
2Disajner: А твой вариант почти такой же как мой. Да он чуть быстрей, но его сложновато реализовать.
__________________
Это все что я хотел сказать.

Старый 17.08.2006, 15:12
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 13  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
1. Точка регистрации пули ставится на ее конец
2. Делаем
Код:
_root.createEmptyMovieClip("allTanks",_root.getNextHighestDepth());
Танков аттачим на allTanks.
3. Код для пули:
Код:
pulja.onEnterFrame = function():Void  {
	if (allTanks.hitTest(pulja._x, pulja._y, true)) {
		for (var $obj in allTanks) {
			if (allTanks[$obj].hitTest(pulja._x, pulja._y, true)) {
                                 //Столкнулись, например удалим танк
				allTanks[$obj].removeMovieClip();
			}
		}
	}
};

Старый 17.08.2006, 15:21
[G@ng$t@]Un1t вне форума Посмотреть профиль Отправить личное сообщение для [G@ng$t@]Un1t Найти все сообщения от [G@ng$t@]Un1t
  № 14  
Ответить с цитированием
[G@ng$t@]Un1t
[+ 1.4 26.12.2005]
[+ 3 26.06.06]
[+3 24.08.06]
 
Аватар для [G@ng$t@]Un1t

Регистрация: Dec 2005
Сообщений: 61
Спасибо за код и вообше за идею, я разобрался.
__________________
Это все что я хотел сказать.

Старый 17.08.2006, 18:31
Disajner вне форума Посмотреть профиль Отправить личное сообщение для Disajner Найти все сообщения от Disajner
  № 15  
Ответить с цитированием
Disajner

Регистрация: Aug 2006
Сообщений: 75
DarkLight
Не сказал бы что это бысть, всё равно все такник перебираются....
А если с сеткой то перебираются намного меньше, хотя суть та же. Но придётся по маятся со структурой данных.

2Disajner: А твой вариант почти такой же как мой. Да он чуть быстрей, но его сложновато реализовать.

Ты ещё не работал в 3D, вот там сложно реализовать, а этот способ один из самых лёгких=))))

Старый 17.08.2006, 20:22
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 16  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
2Disajner
Я делал нечто подобное. Сетка вызывает проблему, что либо объекту можно находиться только в одной клетке целиком, что заметно, либо приходится писать кучу лишнего кода для объектов в 2(3) клетках сразу...
В момент полета проверка одного столкновения выполняется быстро, чуть быстрее чем вычисление клетки...В момент попадания сеточный алгоритм быстрее, но результат примерно одинаковый, а трудозатраты на структуру данных на сетке высокие...
Я пользуюсь плитками, если они есть с самого начала, а вводить их только ради столкновения нет особого смысла...

Старый 18.08.2006, 11:59
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 17  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Disajner хороший путь предложил, у танка есть свойство ячейка в которой он находится - пробегаешь по всем танкам, заносишь в массив только принадлежащие конкретной ячейки танки (той, в которой сейчас пуля) и их проверяешь.

Старый 18.08.2006, 13:15
Disajner вне форума Посмотреть профиль Отправить личное сообщение для Disajner Найти все сообщения от Disajner
  № 18  
Ответить с цитированием
Disajner

Регистрация: Aug 2006
Сообщений: 75
DarkLight вообще я имел ввиду не определять в какой клетки находится объект, а у каждой такой клетки есть список таеков находящихся в ней, и проверятются только танки которые находятся в этом списке=))) А насчёт того что проверка одной точки быстрее, не согласи!!!Вот почему: проверка принадляжания к клетки это максимум проверка 4 условик(геометрия=)))А попадания точки, если ещё учесть пересикает ли эта точка саму нарисованную картинку, а не только её ограничивающий прямоугольник , намоного больше будет выполнятся, т.к. форма картинки может быть любая, значит и условий много=)))) Хотя каждый деляает как ему удобно
Sneg Хорошая идея, лекго релизовать, и быстро=)))

Старый 19.08.2006, 01:01
[G@ng$t@]Un1t вне форума Посмотреть профиль Отправить личное сообщение для [G@ng$t@]Un1t Найти все сообщения от [G@ng$t@]Un1t
  № 19  
Ответить с цитированием
[G@ng$t@]Un1t
[+ 1.4 26.12.2005]
[+ 3 26.06.06]
[+3 24.08.06]
 
Аватар для [G@ng$t@]Un1t

Регистрация: Dec 2005
Сообщений: 61
Так вроде кажется сначала, что вроде легко эти столкновения реализовать. А как займешся этим сталкиваешся с некоторыми тонкостями, которые в общем то и усложняют процесс.
__________________
Это все что я хотел сказать.

Старый 24.08.2006, 17:44
fromotherplanet вне форума Посмотреть профиль Отправить личное сообщение для fromotherplanet Найти все сообщения от fromotherplanet
  № 20  
Ответить с цитированием
fromotherplanet

Регистрация: Aug 2006
Сообщений: 60
[G@ng$t@]Un1t, скажи пожалуйста, как решается эта проблема, у меня очень похожая!!!

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

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

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


 


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


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