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

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

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

Регистрация: Nov 2006
Сообщений: 35
Cool Приблизительная касательная к мувику в точке

Тело (body_mc) касается поверхности при падении своими нижними границами в точке (body_mc._x;body_mc_y).Как найти угол касательной к мувиклипу в точке? Я пытался искать приблизительно. Т.е. от данной точки смещал на определённый шаг координату х2, далее отсчитывал нужный н2: начиная с верхней границы мувика
Код:
//Взаимодействие тела с Землёй
function body_interaction(body_mc:MovieClip) {

//получение x1 y1 x2 y2 для построения касательной к точке контакта
//здесь _x=x1, _y=y1
		
if (this.hitTest(body_mc._x,body_mc.getBounds(_root).yMax,true)) {
	body_mc.x2 = body_mc._x+1;
	body_mc.y2 = this.getBounds(_root).yMin;
	//получение y2
             while (!this.hitTest(body_mc.x2,body_mc.y2,true)) 
                     { body_mc.y2 ++ }
	//изменяем параметры движения тела:
	body_mc.calculate_crTouching();//вычисляем угол касательной
	body_mc.calculate_crBody();//вычисляем угол откражения
}//if
}//body_interaction
т.е. х2 уже определён. Ищу y2... Можно инкрементить его и на более мелкий шаг чем еденица. просто всёравно trace не то выдаёт. Разность trace(body_mc.y2 - body_mc._y); слишком большая.(x2, y2 - это координаты второй точки, и таким образом имея _x _y x2 y2 можно вродебы провести касательную)
потом вдумался - всётаки погрешности слишком большие. Короче помогиет решить проблему. Может у вас свои идею есть?

// Ещё разок попробую пояснить:

Я проверял пока нижняя грань не каснётся поверхности землz
Код:
this.hitTest(_mc._x, _mc._y, true) {
// здесь я брал точку (_x+<шаг>, верхняя граница земли)
//затем инкрементил игрек до хиттеста с землёй (циклом с условием) по второму разу - но 
// касательная всёравно глючно как-то выходит...
}
И если шаг взять небольшим - то по логике проведём прямую, близкую к касательной...


Последний раз редактировалось Даня; 21.11.2006 в 00:23.
Старый 20.11.2006, 22:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

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

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

Регистрация: Nov 2006
Сообщений: 35
Извиняюсь, теперь буду знать

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

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

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


 


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


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