![]() |
Можно ли.....
........двигать рыбку по траектории чтоб она прижималась к этой самой траэктории тобишь смотрела всегда носом по этой самой траэктории! Да, можно! :))))))))
А можно ли сделать эту траэкторию случайной? Или это нужно продумывать ее движения и задавать ограничения? |
Конечно, можно.
Задаёшь случайный угол поворота (небольшой), поворачиваешь рыбу на этот угол, и сдвигаешь в соответствующем направлении (координаты считаешь через тангенс). А ещё лучше - сделать случайным не угол поворота, а угловую скорость - плавнее будет. |
Useless это так если не важна конечная точка рыбки.
А если надо чтобы она из точки А в точку В, это сложнее. |
Вот именно! Можно конечно всегда двигать ее вперед на поворотах замедлять и поворачивать программно! Но вот она должна крутиться в прямоугольном экранчике! Например то отдалялась то приближалась к центральной точке! Можно конечно сделать на основе вертикальных и горизонтальных ограничений! типа заплыла за край так пусть двигается в квадрату! А в квадратике пусть уже включается "свободное плвавание"! Просто может это можно сделать кврасивее чем умножать на дохрена разных коэфициэнтов!
|
Ох, блин...
Предупреждать же надо. Тогда - наоборот. Пусть она по рандому колбасится вокруг центральной точки, а крутить её - исходя из линейной скорости Код:
angle = Math.atan2( vy, vx ); |
Погодь!vx - линейная скорость по иксу а vy - по игреку?
но насколько я понял ее колбасить нужно плавненько, тобишь програмно сглаживать повороты! кстати это лучше всего делать на разнице приращений икса и игрека? типа делить оставшееся расстояние на 2 например! |
а поискать
или вот попереводи :) fs = [[], [], [], [], [], [[]], [[]], [], _root, "onEnterFrame", 0, 5, undefined, "clear", undefined, "unshift", "pop", "length", Math, "sin", "cos", "sqrt", "lineStyle", "moveTo", "lineTo"]; for (fs[12]=fs[10]; fs[12]<fs[11]; fs[12]++) { fs[5][fs[12]]=new Array(24); fs[6][fs[12]]=new Array(24); } fs[8][fs[9]] = function() { fs[8][fs[13]](); for (fs[12]=fs[10]; fs[12]<fs[11]; fs[12]++) { if ((fs[1][fs[12]]++) == fs[2][fs[12]]) { fs[2][fs[12]]=random(6)+6; fs[3][fs[12]]=random(9)+3; fs[4][fs[12]]=random(3)-1; fs[1][fs[12]] = fs[10]; } fs[5][fs[12]][fs[15]](fs[5][fs[12]][1]+4*fs[18][fs[20]]((fs[7][fs[12]]+=fs[4][fs[12]]*fs[3][fs[12]]) *0.0174532925199433)); fs[6][fs[12]][fs[15]](fs[6][fs[12]][1]+4*fs[18][fs[19]](fs[7][fs[12]]*0.0174532925199433)); if (200<fs[18][fs[21]]((fs[5][fs[12]][1])*(fs[5][fs[12]][1])+(fs[6][fs[12]][1])*(fs[6][fs[12]][1]))) { fs[5][fs[12]][1]=fs[6][fs[12]][1] = fs[10]; } if (fs[5][fs[12]][fs[16]]() != fs[6][fs[12]][fs[16]]()+1000) fs[14] = fs[10]; do { fs[8][fs[22]]((50-fs[14]*2)/5,0xddff99,(120-fs[14]*4)); fs[8][fs[23]]((fs[5][fs[12]][fs[14]]+200),(fs[6][fs[12]][fs[14]]+200)); fs[8][fs[24]]((fs[5][fs[12]][fs[14]]+200.25),(fs[6][fs[12]][fs[14]]+200.25)); } while (fs[5][fs[12]][fs[17]] > fs[14]++); } } |
Ух ты ж блять! :eek: :eek: :eek: :eek: :eek: :confused: :confused: :confused: :confused:
Ладно поразбираюсь! Только что-то он жутко тормозит! был вроде код! Причем по-моему твой, где сперматозоиды в банке гонались! :))))) |
О да, код еще тот!
Както разбираться не очень хочеться. :) :) |
да как поизвращался а Расчленитель догнал.
тебе надо это rad = Math.PI/180 это зависит от реализации заполняется массив координат а там как ума хватит //==определяешь границы if(в пределах границы){f++}else{z=1;}; //ограничивать проще всего кубом или цилиндром //вычисляешь следующие координаты if (f>=c) { c = random(6)+1; da = random(12)+3; z = random(3)-1; f = 0; } angle += z*da; xcoord += 3*Math.cos(angle*rad); zcoord += 3*Math.sin(angle*rad); //============== //==добавляешь камеру смотрящую в 0 0 0 так вычислений //==меньше или по настроению; //==ycoord можно сделать переменным, можно константой //==по барабану. Screenx = FOCAL_DISTANCE * xcoord / zcoord; Screeny = FOCAL_DISTANCE * ycoord / zcoord; и все еш шоколад |
| Часовой пояс GMT +4, время: 18:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.