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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.07.2007, 21:17
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 1  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
По умолчанию Пересечение 2 заранее неизвестных объектов

Привет всем!
Вобщем ситуация такая :
Я создаю игру, где мне нужно проверять пересечение 2 объектов - пули с именем "gun"+gun_number где gun_number всегда меняется, и "enemy"+i где i тоже переменная. Как мне проверить их пересечение?????
Единственное что я придумал - это проверять их из самого клипа enemy на пересечение с клипом guns где куда и копируются все пули. Но код получается уж больно ресурсоёмкий.
Если кто делал что-то подобное помогите плиз.
__________________
Peace !!!

Старый 04.07.2007, 21:28
divinus вне форума Посмотреть профиль Отправить личное сообщение для divinus Найти все сообщения от divinus
  № 2  
Ответить с цитированием
divinus
 
Аватар для divinus

Регистрация: Dec 2005
Адрес: мухосранск
Сообщений: 661
Отправить сообщение для divinus с помощью ICQ
Вот тут хорошо написано, но если лень разбираться, то почитай про функцию hitTest
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет...

Старый 04.07.2007, 23:58
Три Двери вне форума Посмотреть профиль Отправить личное сообщение для Три Двери Найти все сообщения от Три Двери
  № 3  
Ответить с цитированием
Три Двери

Регистрация: Jul 2007
Сообщений: 1
Попробуй использовать for...in.

Старый 05.07.2007, 10:03
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 4  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Я уже давал совет, написать код на хиттест внутри мувика пули. И не надо заморачиваться.
__________________
"We Are The Champions My Friends!" Queen

Старый 05.07.2007, 22:48
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 5  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
2 diviniz : я не нашол иам для себя ничего полезного.
2 три двери : через цыклы это тоже слишком будет жрать память, врагов будет по 7-8 зараз, а пуль еще больше
2 CorC : я писал код внутри пули, но 1)Это слишком ресурсоёмко,2)нужно знать еще и с каким врагом столкнулась пуля.
Но всем спаибо за попытку помоч.
__________________
Peace !!!

Старый 06.07.2007, 02:21
xintrea вне форума Посмотреть профиль Отправить личное сообщение для xintrea Посетить домашнюю страницу xintrea Найти все сообщения от xintrea
  № 6  
Ответить с цитированием
xintrea
 
Аватар для xintrea

Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
В любом случае, тебе придется проверять на столкновение координаты каждой пули с координатами каждого врага. Хоть ты это будешь делать в цикле, хоть это будет происходить автоматически через hitTest().

Хотя, чего там, ~8 врагов, ~20 пуль, всего 8 x 20 = 160 проверок, умножим на 4 потому что по OX две проверки делать и по OY две проверки, итого 640 проверок. Для флеша в таком количестве проверить number - вообще незаметно.

А формально, сделать менее ресурсоемко - это идти на ухищрения, группировать пули и объекты по условному месторасположению. Например разбить игровое поле на 9 условных прямоугольников 3x3

1 2 3
4 5 6
7 8 9

и для каждой пули и врага хранить номер зоны, в которой они находятся. И никогда не делать проверку для пули и врага, которые находятся в разных зонах. Проверять столкновения только тех пуль и врагов, которые принадлежат одной зоне. Алгоритм получится навороченней, но работать будет шустрее. При большом количестве объектов почуствуешь выигрышь.
__________________
Со всяческими пожеланиями, Xintrea.
https://webhamster.ru

Старый 06.07.2007, 18:30
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 7  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
Спасибо, через недели мучений может и придумаю как это сделать)))
Если ты сам такое делал пожалуйста подскажи поподробнее.
У меня на 4 врага и 2 пули уже виснет. У мня азу 512 а проц 2.4, так что это не от компьютера.Может я со скриптом слегка намудрил, незнаю но виснет заметно очень.
__________________
Peace !!!

Старый 07.07.2007, 04:59
xintrea вне форума Посмотреть профиль Отправить личное сообщение для xintrea Посетить домашнюю страницу xintrea Найти все сообщения от xintrea
  № 8  
Ответить с цитированием
xintrea
 
Аватар для xintrea

Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
Я такое только на сях делал. На флеше не пробовал. Но тебе тут каждый скажет, что ты что-то со скриптом намудрил. 4 врага и 2 пули - чего там тормозить то может?

Совет - запусти swf отдельно в флешплейере и посмотри, не увеличивается ли у процесса потребляемая память в ходе работы. Если все время растет - точно намудрил. Если не растет, то какие-то у тебя дикие циклы которые проверяют неизвестно что.
__________________
Со всяческими пожеланиями, Xintrea.
https://webhamster.ru

Старый 07.07.2007, 18:10
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 9  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
Ну у меня не просто hitTest а поточечное сканирование.
У мня не виснет до появления 2 пули, а после её появления начинается.
__________________
Peace !!!

Старый 08.07.2007, 07:53
Gh >k вне форума Посмотреть профиль Отправить личное сообщение для Gh >k Найти все сообщения от Gh >k
  № 10  
Ответить с цитированием
Gh >k
 
Аватар для Gh >k

Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
ну хоть ктонибудь ХЕЛП!!
__________________
Peace !!!

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

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

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


 


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


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