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

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

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

Регистрация: Dec 2005
Сообщений: 17
Arrow Объект с траекторией полета огибающей предметы

Почему-то когда создал тему http://flasher.ru/forum/showthread.php?t=94454 модератор ее закрыл из-за несоответствия названия вопросу, сейчас я думаю соответствует.
Повторю вопрос:
Нужно сделать такую фишку: Есть объект(точка) Летит слева на право. Мышкой перемещаем предмет и ставим на пути этой точки. Точка должна облететь этот предмет с наибольшей реалистичностью(как пузыри воздуха в воде обходят камни и т.п.)
Как можно сделать? Голову ломаю второй месяц
Было предложение сделать так:
Цитата:
Препятствие которое передвигаешь нужно сделать побольше т.е. под ним в мувике нарисовать прозрачный квадрат(по форме) побольше.
В коде рассказываешь, что когда хиттестит, то, типа, облетай!
Для меня и есть главная проблема как в коде "рассказываешь, что когда хиттестит, то, типа, облетай!" Я можно сказать только начинаю изучать серьезно AS и поэтому не силен. Подскажите как реализовать! Всем заранее огромное спасибо!!!

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от RedDiamond
Почему-то когда создал тему http://flasher.ru/forum/showthread.php?t=94454 модератор ее закрыл из-за несоответствия названия вопросу
Потому-то, это нарушение правил было.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.04.2007, 02:45
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 3  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
тебе полностью вряд ли кто-то поможет решать такую проблему.
Сам знаю, так что дерзай. Поверь так лучше.

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

Регистрация: Dec 2005
Сообщений: 17
Цитата:
Сообщение от Mr. Fixit
тебе полностью вряд ли кто-то поможет решать такую проблему.
Сам знаю, так что дерзай. Поверь так лучше.
Может у кого-то пример есть чего-то похожего. Может кто-то подскажет как написать функцию движения?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от RedDiamond
Может у кого-то пример есть чего-то похожего. Может кто-то подскажет как написать функцию движения?
Слева направо?
Код:
var speed:Number = 5;
this.onEnterFrame = function () {
	имя_объекта._x += speed;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.04.2007, 06:43
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 6  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Цитата:
Мышкой перемещаем предмет и ставим на пути этой точки.
Код:
this.имя_объекта.onPress = function() { 
    this.startDrag();
};
__________________
Free-lance | Twitter | Me


Последний раз редактировалось screamge; 13.04.2007 в 10:29.
Старый 13.04.2007, 10:14
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 7  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Цитата:
В коде рассказываешь, что когда хиттестит, то, типа, облетай!
Вы знаете, что совершенных алгоритмов решения данной проблемы не существует, а что если у вас фигура - какой-нибудь невыпуклый предмет?
Предлагаю упростить и делать по прямоугольной форме:
1. летит предмет (П1), как летит писал iNils.
2. тащим предмет (П2), как тащим тоже написано.
3. проверем на hitTest П1 П2, как лучше в хелп или поиск
4. потом, пока hitTest идем вверх или вниз
5. как только не hitTest продоолжаем движение прямо
__________________
"We Are The Champions My Friends!" Queen


Последний раз редактировалось iNils; 13.04.2007 в 15:06.
Старый 13.04.2007, 11:25
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 8  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Если надо "(как пузыри воздуха в воде обходят камни и т.п.)", рекомендую нарисовать траектории движения обтекания камня пузырьками. На бумаге.
Потом отсканировать и/или прорисовать траектории.
Потом каждую линию сделать Motion Guide для клипа - шарика. Шарик не забыть назвать. Все должно быть в библиотеке, указать linkage id.
Далее, пузырек подплывает к камешку, по формуле iNils'а и в какой-то момент приближается настолько, что пора бы начинать обтекать. Тут вы сохраняете текущие координаты пузырька,
Код:
bubble._x0=bubble._x;
bubble._y0=bubble._y;
про _x+=5 забываете, аттачите нужный клип куда-нибудь вне поля зрения, и каждый кадр сумируете координаты того шарика, что на траектории, с сохраненным положением пузырька.
Код:
var depth = getNextHighestDepth();
var treck_mc = attachMovie( "trek1", "treck"+ depth, depth );
var lider:MovieClip = treck_mc.ball;
bubble.onEnterFrame = function(){
this._x = this._x0 + lider._x;
this._y = this._y0 + lider._y;
}
Потом надо будет грохнуть пузырь вместе с траекторией. Как программно исполнить обтекание предмета струей, не спрашивайте. Этим занимаются большие институты, и то они все проверяют в бассейнах. Траектория слишком перегружена переменными.

Старый 13.04.2007, 11:36
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 9  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Можно пачитать насчет алгоритмов расчета координат. Можна даже задать траекторию движения уравнением, в котором по мере необходимости менять кое какие координаты.
В принципе, у объекта и точки есть координаты, и они доступны. Придумываем условие, типа если разность координат х меньше чего та, надо изменить у точки в зависимости от текущего у предмета. Тогда если предмет не на пути точки, пролетаем с минимальным отклонением, на пути, огибаем сверху или снизу - в зависимости от координат центра предмета. Если координата х точки больше х предмета, то надо возвратиться на прежнюю траекторию. Делаем все то же что при приближении, тока наоборот. Форма фигуры не имеет зачения, нас интересует тока положение ее центра, ну и задаем на каком расстоянии точка должна облететь фигуру.
ЗЫ: Насчет реалистичности: реалистично всегда значит реально за деньги.

Старый 13.04.2007, 13:08
RedDiamond вне форума Посмотреть профиль Отправить личное сообщение для RedDiamond Найти все сообщения от RedDiamond
  № 10  
Ответить с цитированием
RedDiamond

Регистрация: Dec 2005
Сообщений: 17
Всем спасибо за советы! Буду пробовать! Если что-то будет не получаться, обязательно спрашу

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

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

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


 


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


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