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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.08.2005, 11:39
ZЭТ вне форума Посмотреть профиль Отправить личное сообщение для ZЭТ Найти все сообщения от ZЭТ
  № 1  
Ответить с цитированием
ZЭТ

Регистрация: Aug 2005
Сообщений: 53
По умолчанию как отловить столкновение с случайным объектом?

как определить столкновение с совершенно случайнм объектом?

Старый 19.08.2005, 11:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А есть не совершенно случайный объект?

hitTest
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 19.08.2005, 11:46
ZЭТ вне форума Посмотреть профиль Отправить личное сообщение для ZЭТ Найти все сообщения от ZЭТ
  № 3  
Ответить с цитированием
ZЭТ

Регистрация: Aug 2005
Сообщений: 53
Цитата:
Сообщение от iNils
А есть не совершенно случайный объект?

hitTest
Так и думал что напишут с ХитТест... , но лучше все-таки со случайным: ведь если будет около 500 объектов, которые генеряться - запаришься к ним Хит Тест писать - это около 1000 лишних строк кода(ну побольше)

Старый 19.08.2005, 11:48
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
другого варианат я не встречал. но действительно если 500 объектов, то надо в цикле все сверять. иначе нельзя.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 19.08.2005, 16:40
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 5  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
привет!
вопрос я понял так: есть некий объект и надо отловить его столкновение с 500-ми генерироваными.
вот, как идея:
может стоит написать прототип "генератам" ( ) с методом хиттест на этот некий объект?

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

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 2,736
Отправить сообщение для Король с помощью ICQ
отсекай те объекты (а их будет наверняка большинство), с которыми столкновение в принципе невозможно. с остальными в цикле проверяй хиттест или считай геометрически - смотря какие объекты

Старый 19.08.2005, 17:15
ZЭТ вне форума Посмотреть профиль Отправить личное сообщение для ZЭТ Найти все сообщения от ZЭТ
  № 7  
Ответить с цитированием
ZЭТ

Регистрация: Aug 2005
Сообщений: 53
Цитата:
Сообщение от король
отсекай те объекты (а их будет наверняка большинство), с которыми столкновение в принципе невозможно. с остальными в цикле проверяй хиттест или считай геометрически - смотря какие объекты
смотри я пытаюсь сделать гэлэкси, как ты предложишь мне отсечь те объекты в которых в принципе столкновение невозможно??? там ведь куда попадет, туда попадет... так что...

Старый 19.08.2005, 17:42
K.A.T.A.F.A.L.K.E.R вне форума Посмотреть профиль Отправить личное сообщение для K.A.T.A.F.A.L.K.E.R Найти все сообщения от K.A.T.A.F.A.L.K.E.R
  № 8  
Ответить с цитированием
K.A.T.A.F.A.L.K.E.R
 
Аватар для K.A.T.A.F.A.L.K.E.R

Регистрация: Jul 2005
Адрес: Go, Ukraine!
Сообщений: 787
Отправить сообщение для K.A.T.A.F.A.L.K.E.R с помощью ICQ
Типа, много объектов на экране? Тады нафик хиттест? Я лично понимаю так: много объектов на экране => объекты маленькие... Так пиши просто "если расстояние меньше радиуса первого+радиус второго (раз маленькие - значит, почти шарики ) - БАХ! (ну ты понял)" где проверять? Создай отдельный мувик(рут подойдет ) и пиши
for(i=1;i<NUM;i++){
for(j=i+1;j<=NUM; j++){
clip1 = eval("meteoritiliasteroid" add i);
clip2 = eval("meteoritiliasteroid" add j);
//Проверка радиусов клипов clip1 и clip2...
}
}
эта ерунда должна работать более-менее быстро, так как проверяет сначала не произошло ли столкновения первого с остальными, потом второго с остальными кроме первого (это уже проверили) и т.д.

Старый 19.08.2005, 18:01
ZЭТ вне форума Посмотреть профиль Отправить личное сообщение для ZЭТ Найти все сообщения от ZЭТ
  № 9  
Ответить с цитированием
ZЭТ

Регистрация: Aug 2005
Сообщений: 53
Цитата:
Сообщение от K.A.T.A.F.A.L.K.E.R
for(i=1;i<NUM;i++){
for(j=i+1;j<=NUM; j++){
clip1 = eval("meteoritiliasteroid" add i);
clip2 = eval("meteoritiliasteroid" add j);
//Проверка радиусов клипов clip1 и clip2...
}
}
Я только в принципе осваиваю экшн скрипт, не можешь пояснить код??
"meteoritiliasteroid" - это название или, если название то чего??
Напиши лучше полный код плиз с пояснениями

Старый 19.08.2005, 18:14
K.A.T.A.F.A.L.K.E.R вне форума Посмотреть профиль Отправить личное сообщение для K.A.T.A.F.A.L.K.E.R Найти все сообщения от K.A.T.A.F.A.L.K.E.R
  № 10  
Ответить с цитированием
K.A.T.A.F.A.L.K.E.R
 
Аватар для K.A.T.A.F.A.L.K.E.R

Регистрация: Jul 2005
Адрес: Go, Ukraine!
Сообщений: 787
Отправить сообщение для K.A.T.A.F.A.L.K.E.R с помощью ICQ
ну допустим у тебя есть астероиды... Имена у астероидов - "asteroid1","asteroid2","asteroid3","asteroid4","asteroid5" и т.д. и т.п. Тогда дабы добраться до N-го астероида тебе нужно написать, скажем,
clipAsteroid = eval("asteroid" add N).
Можно еще там _root["asteroid" add N], вообщем, много способов... Но этот почему-то мне нравится больше всего. Слово красивое А насчет проверки там - ну пиши
Asteroid1 = eval("asteroid" add i);
Asteroid2 = eval("asteroid" add j);
distance = Math.sqrt(Math.pow(Asteroid1._x-Asteroid2._x,2)+Math.pow(Asteroid1._y-Asteroid2._y,2));
if(distance<=Asteroid1.radius+Asteroid2.radius){
//делаешь то что надо делать при их столкновении
}
ну и предварительно задавай каждому значение radius... Можешь через prototype...
Но все это для того чтобы просчитать их столкновения друг с другом (тебе ж это надо было?)

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

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

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


 


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


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