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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.08.2005, 04:23
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 61  
Ответить с цитированием
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
Цитата:
шкурка это набор пикселей. их надо приложить, в другому набору пикселей, чтобы узнать пересекаются ли они. а это время. и вообще такое поведение криво. разница между шкуркой и объектом такая же как между реальным мувиком и переменной типа объект
1)во флэше мувиклип - это и есть обьект в смысле ООП
2)к чему этот пример - не понятно

задача не такая сложная как думается
по большому счету в _руте лежат n мувиклипов в каждом из которых нарисована m-угольная фигура.
у каждого обьекта есть линейные и угловые скорости
onEnterFrame = function
{
в каждом кадре проверяем факт столкновения произвольных двух клипов (хиттестом или ручками - хотя я склоняюсь к идеи что быстрее работает все-таки первое) и пересчитываем новые скорости у 2-ух столкнувшихся обьектов.
изменяем координаты и углы поворота всех клипов на экране
}
все
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается

Старый 10.08.2005, 05:34
Takato вне форума Посмотреть профиль Отправить личное сообщение для Takato Посетить домашнюю страницу Takato Найти все сообщения от Takato
  № 62  
Ответить с цитированием
Takato
 
Аватар для Takato

Регистрация: Aug 2005
Адрес: не дом и не улица
Сообщений: 1,204
"в каждом кадре проверяем факт столкновения произвольных двух клипов (хиттестом или ручками - хотя я склоняюсь к идеи что быстрее работает все-таки первое) и пересчитываем новые скорости у 2-ух столкнувшихся обьектов."

при больших скоростях или небольших размерах предмета (даже в одном измерении - например - тонкая плита) - предметы пролетят друг сквозь друга не взаимодействуя
__________________
Давайте нанесем по ним ядерный удар!

Старый 10.08.2005, 11:38
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 63  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
2 Takato
абсолютно прав.

2 руль
а вот ты не понял.
1) чушь. вектор-растр не имеет значения. это реальные пиксели.
2) для того чтобы понять смысл слов. но, вижу, трудно.
ктоме такатовских слов: чтобы использовать хитТест надо мувик сначала переместить. а это бред. если что-то не понятно перечитай предыдущее. а мне надоело.
__________________
Breakcore them all!

Старый 10.08.2005, 14:48
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 64  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
Было бы хорошо при каждом воздействии на объект просчитывать его траекторию, и рисовать её по отрезкам в виде Motion Guide, а потом просто двигать объект по ней. Это даст высокую точность, хотя будет затрачено определенное время на просчёт

Старый 10.08.2005, 14:50
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 65  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
"предметы пролетят друг сквозь друга не взаимодействуя"
я лично для того чтобы этого не происходило, просчитываю несколько раз за кадр, с делением.

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

Регистрация: Aug 2005
Адрес: не дом и не улица
Сообщений: 1,204
Цитата:
Сообщение от TERRORist
"предметы пролетят друг сквозь друга не взаимодействуя"
я лично для того чтобы этого не происходило, просчитываю несколько раз за кадр, с делением.
Но опять же - это ведь уже не хиттест, а программный рассчет
__________________
Давайте нанесем по ним ядерный удар!

Старый 10.08.2005, 15:43
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 67  
Ответить с цитированием
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
Цитата:
Сообщение от KidsKilla
2 руль
а вот ты не понял.
1) чушь. вектор-растр не имеет значения. это реальные пиксели.
2) для того чтобы понять смысл слов. но, вижу, трудно.
ктоме такатовских слов: чтобы использовать хитТест надо мувик сначала переместить. а это бред. если что-то не понятно перечитай предыдущее. а мне надоело.
1) причем тут реальные пиксели ? флэш, если не ошибаюсь, векторный до мозга костей. Неужели ты думаешь что флэшевский хиттест работает по принципу - совподает ли координата любого пикселя из первого мувика с координатой какого-либо пикселя из второго. Если бы это было так то во флэше можно былоб узнать факт столкновения двух произвольных мувиков не прямоугольной формы используя только его.
2) почему бы не подумать шире. Переместил мувик - хиттест сказал что 2 обьекта столкнулись - переместил мувик назад в положение которое он занимал до столкновения. Другое дело что может придется решать проблему о которой говорил Takato - но эту проблему решать придется не зависимо от того используется хиттест или нет (хотя он тут тоже может помочь), в конце-концов всегда можно ограничится или достаточно большими обьектами или достаточно малыми скоростями.
теперь насчет твоего примера:
складывается впечатление что ты его привел чтобы показать свою крутость в понимании ООП. Потому что первый способ о котором ты говоришь взят с потолка. В любом случае используешь ты хиттест или делаешь все "по формулам" ты работаешь не с изображениями мувиков на экране а с ними самими т.е. с обьектами с их полями и методами.
поясню на том-же самом примере

var Ion = new Object();
Ion.age = 20; // да на основании пола, возраста, и веса вычислить столкнешься ты со стеной или нет =)
Ion.sex = male;
Ion.weight = 80;
Ion.shape = new Object() // тут задается векторная форма твоего тела неважно каким образом
далее пишешь метод Ion.shape.hittest(Object) который вычисляет пересекается-ли Ion.shape с Wall.shape. Также впринципе делает и хиттест просто это скрыто.
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается

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

Регистрация: Aug 2005
Адрес: не дом и не улица
Сообщений: 1,204
Цитата:
Другое дело что может придется решать проблему о которой говорил Takato - но эту проблему решать придется не зависимо от того используется хиттест или нет (хотя он тут тоже может помочь), в конце-концов всегда можно ограничится или достаточно большими обьектами или достаточно малыми скоростями
Можно то можно - в большинстве физический игр так и происходит - но это будет очень серьезное упущение для если не "идеального", то по крайней мере, качественного физического движка, который здесь хотят построить
__________________
Давайте нанесем по ним ядерный удар!

Старый 10.08.2005, 17:08
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 69  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
1) бл* попробуй mc.hitTest(_x, _y, true); и не пори чушь.
векторный или нет пикселям на это пох. иначе тебе бы пришлось оч туго, задавая размеры мувика.
2)
1. ты теряешь 2 кадра. за 1н кадр не пересчитаешь и не переместишь.
2. нельзя. игры с пулями пример.
3. я крут и без знаний ооп. это тут ни при чем. я показывал разницу подходов — двигать объект (самого Ion'а) или юзать набор свойств. это может быть объект, массив, или просто разбросанные мо муву пересенные. не суть. метод не с потолка — это лучшая практика построения игр и вообще приложений.

> "В любом случае используешь ты хиттест или делаешь все "по формулам" ты работаешь не с изображениями мувиков на экране а с ними самими т.е. с обьектами с их полями и методами."
бред.

var Ion = new Object();
Ion.age = 20; // пол и возраст лишь ПРИМЕРЫ
Ion.sex = male;
Ion.weight = 80;
Ion.shape = new Object() // форма в свою очередь задаётся Высотой-шириной отдельных частей (рук-ног), которые сами по себе — список свойств

пс, плиз, не говори чепухи, если не в курсе.
__________________
Breakcore them all!


Последний раз редактировалось KidsKilla; 10.08.2005 в 17:16.
Старый 10.08.2005, 17:43
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 70  
Ответить с цитированием
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
Цитата:
Сообщение от KidsKilla
1) бл* попробуй mc.hitTest(_x, _y, true); и не пори чушь.
mc.hitTest(_x, _y, true) = true если точка с координатами (_x;_y) лежит внутри мувика mc. пересечение двух мувиков так не посчитаешь - тут ты поришь чушь
Цитата:
Сообщение от KidsKilla
1. ты теряешь 2 кадра. за 1н кадр не пересчитаешь и не переместишь.
да ладно
Цитата:
Сообщение от KidsKilla
2. нельзя. игры с пулями пример.
можно
в играх с пулями считается не пересечение обьект-пуля а пересечение обьект-траектория пули. Если траектория пули - есть MovieClip - опять таки hittest нам в помощь.
Цитата:
Сообщение от KidsKilla
3. я крут и без знаний ооп. это тут ни при чем.
не знаю
Цитата:
Сообщение от KidsKilla
я показывал разницу подходов — двигать объект (самого Ion'а) или юзать набор свойств.
мы говорим про флэш и только про него
обьясни как ты будешь двигать обьект не использую его свойства _x и _y ?
Цитата:
Сообщение от KidsKilla
бред.
не обосновано
Цитата:
Сообщение от KidsKilla
Ion.shape = new Object() // форма в свою очередь задаётся Высотой-шириной отдельных частей (рук-ног), которые сами по себе — список свойств
в конце-концов тебе все-равно придется задавать конкретную форму рук/ног/пальцев и т.д и считать пересечения этих примитивов....вообще че тебя в игры все тянет. Мы говорим про возможность создания Physical Engine.
пс. я вкурсе
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается

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

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

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


 


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


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