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

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

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

Регистрация: Jan 2010
Сообщений: 19
По умолчанию Подскажите, плзь, идею про столкновения в играх :)

Приветствую.
Итак, простой hitTest чуууть не устраивает по той причине, что если объекты даже лишь коснутся друг друга, он уже сработает.
Проверка по мере приближения к x и y объекта, тоже не вариант, так как объект с которым возможно столкновение может быть вытянутым.

Если попытаться сформулировать с точки зрения программинга, то идельным было бы решение - коллизить объекты по их "графическому объёму" минус несколько пикселей.

В общем, ищу не конкретного решения так как ничего толком и не описал, а скоре идей - как коллизить объекты, чтобы было и изящно(! - меньше вычислений) и удовлетворяло бы потребностям

Старый 30.01.2010, 17:26
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Использовать BitmapData.

Когда на сцене появляется объект, с которым возможно столкновение, создавать BitmapData с копией этого объекта (методом BitmapData.draw()). Потом, например, BitmapDat`у сделать оттенками серого и размыть фильтром. А когда считать столкновения — брать значение цвета пикселя у картинки и по этому значению определять столкновение.

Я проиллюстрирую идею:
То, как должно происходить столкновение:
Название: 1.jpg
Просмотров: 334

Размер: 39.6 Кб

1. Создаем BitmapData с прозрачным фоном и убираем насыщенность и контраст.
Название: 2.jpg
Просмотров: 337

Размер: 28.2 Кб

2. Применяем блюр с параметрами размытия аналогичными тому, насколько другой объект может "въехать" в этот.

Название: 3.jpg
Просмотров: 341

Размер: 29.4 Кб

3. Когда необходим расчет столкновения, берем значение цвета пикселя у BitmapData c теми же координатами, что и у объекта, который сталкивается.

Название: 4.jpg
Просмотров: 338

Размер: 42.9 Кб

Вот как-то так. В принципе, для всех объектов, которые могут сталкиваться, можно создавать свойство с их BitmapData. И производить расчет "глубины" столкновения только когда hitTest() вернет true, то есть объекты габаритно пересекутся.

За оптимальность и изящность такого метода не ручаюсь, сам такое не пробовал, но, думаю, работать должно.
__________________
hauts.ru


Последний раз редактировалось Hauts; 30.01.2010 в 17:29.
Старый 30.01.2010, 18:46
Boris вне форума Посмотреть профиль Отправить личное сообщение для Boris Найти все сообщения от Boris
  № 3  
Ответить с цитированием
Boris

Регистрация: Jan 2010
Сообщений: 19
ага, попробую.
Пока придумал вот что... (просьба громко не смеятся )
аттачить к клипам невидимые клипы, но меньше и их-то и коллизить.
вроде работает... хм... пока но что-то подсказывает, что должно быть какое-то более изысканное решение.

Старый 30.01.2010, 19:00
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Вот, посмотрите.
__________________
hauts.ru

Старый 30.01.2010, 21:07
Boris вне форума Посмотреть профиль Отправить личное сообщение для Boris Найти все сообщения от Boris
  № 5  
Ответить с цитированием
Boris

Регистрация: Jan 2010
Сообщений: 19
О, спасибо за ресурс и ссылку !

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

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

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


 


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


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