Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   загадочный глюк или я в OnClipEvent (http://www.flasher.ru/forum/showthread.php?t=45415)

Usnul 06.06.2003 01:35

ну ты не кипятись. просто нужно прощитывать расстояние оставшиеся до достижения точки по обеим осям, и если оно меньше "шага",то добавлять его, а не "шаг", андэстэндэбл?

Vrefr 06.06.2003 13:56

2Usnul: чем дальше, тем больше я сомневаюсь в твоем возрасте :) ну или ты вундеркинд :) ЧТо в переводе с немецкого: удивительный ребенок.
Ну хорошо, это понятно, ну а если траектория не просто прямо или по-диагонали. а скажем объект движется по петле. а доходя до конца петли по ней же возвращается назад?

uri-uri 06.06.2003 15:04

Задавай уравнение движения параметрически и не парься. Параметром может являться время, может шаг (скажем 1/100 пути).
В общем виде это выглядит так:
_x=f1(t)
_y=f2(t)
t={0...1} - параметр
f1, f2 - функции

Тогда можно извращаться, как угодно (в смысле двигаться по любой кривой) и всегда при t=1 окажешся точно в конце пути.
А "параметрические уравнения" можно нарыть поиском в том же yandex.

Vrefr 06.06.2003 15:59

о, да, параметрические... осталось еще выяснить что это и пройти курс программирования и высшей математики... :(

iLoveYou 07.06.2003 00:14

Vrefr, я уже,честно говоря, забыл, что те нужно - как-то отошли от темы. Напомни, а? :)
А то что я советы вредные даю - так это не со зла. Обещаю, постараюсь помочь.

Usnul 07.06.2003 03:21

по петле? это запросто :)
_root.massx=[10,20,30,40,50,40,30,20,10]
_root.massy=[100,90,80,90,100,110,120,110,100]
_root.speed=30
_root.nextposition=0
_root.thisx=0
_root.thisy=90
_root.mc._x=_root.thisx
_root.mc._y=_root.thisy
mc.onEnterFrame=function(){
if(_root.mc._x!=_root.massx[_root.NextPosition] and _root.mc._y!=_root.massy[_root.NextPosition]){
_root.mc._x+=(_root.massx[_root.NextPosition]-_root.thisx)/_root.speed
_root.mc._y+=(_root.massy[_root.NextPosition]-_root.thisy)/_root.speed
}
else{
if(_root.nextposition<_root.massx.length and _root.nextposition<_root.massy.length){
_root.thisx=_root.mc._x
_root.thisy=_root.mc._y
_root.nextposition+=1
}
else{
trace("end of coordinats Array")
}
}
}
вот написал, не обижайся что не пашет, но зато дает представление :) я его почти полчаса писал :( и вдабавок спать хочется, короче не серчай :) завтра будет время, разберусь :)


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

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