|
|
|||||
Сайгак
|
Можно ли.....
........двигать рыбку по траектории чтоб она прижималась к этой самой траэктории тобишь смотрела всегда носом по этой самой траэктории! Да, можно! )))))))
А можно ли сделать эту траэкторию случайной? Или это нужно продумывать ее движения и задавать ограничения?
__________________
- Всё, мастер! Готово! - Что готово? - Сломал... ------------------------------ (O: ЖЖ :O) |
|
|||||
Конечно, можно.
Задаёшь случайный угол поворота (небольшой), поворачиваешь рыбу на этот угол, и сдвигаешь в соответствующем направлении (координаты считаешь через тангенс). А ещё лучше - сделать случайным не угол поворота, а угловую скорость - плавнее будет.
__________________
Work not wolf - in forest no run |
|
|||||
F1
Регистрация: Apr 2000
Сообщений: 3,620
|
Useless это так если не важна конечная точка рыбки.
А если надо чтобы она из точки А в точку В, это сложнее.
__________________
+_+ |
|
|||||
Сайгак
|
Вот именно! Можно конечно всегда двигать ее вперед на поворотах замедлять и поворачивать программно! Но вот она должна крутиться в прямоугольном экранчике! Например то отдалялась то приближалась к центральной точке! Можно конечно сделать на основе вертикальных и горизонтальных ограничений! типа заплыла за край так пусть двигается в квадрату! А в квадратике пусть уже включается "свободное плвавание"! Просто может это можно сделать кврасивее чем умножать на дохрена разных коэфициэнтов!
__________________
- Всё, мастер! Готово! - Что готово? - Сломал... ------------------------------ (O: ЖЖ :O) |
|
|||||
Ох, блин...
Предупреждать же надо. Тогда - наоборот. Пусть она по рандому колбасится вокруг центральной точки, а крутить её - исходя из линейной скорости
__________________
Work not wolf - in forest no run |
|
|||||
Сайгак
|
Погодь!vx - линейная скорость по иксу а vy - по игреку?
но насколько я понял ее колбасить нужно плавненько, тобишь програмно сглаживать повороты! кстати это лучше всего делать на разнице приращений икса и игрека? типа делить оставшееся расстояние на 2 например!
__________________
- Всё, мастер! Готово! - Что готово? - Сломал... ------------------------------ (O: ЖЖ :O) |
|
|||||
Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
|
а поискать
или вот попереводи 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]++); } } |
|
|||||
F1
Регистрация: Apr 2000
Сообщений: 3,620
|
О да, код еще тот!
Както разбираться не очень хочеться. |
|
|||||
Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
|
да как поизвращался а Расчленитель догнал.
тебе надо это 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; и все еш шоколад Последний раз редактировалось greyshaman; 22.05.2003 в 02:21. |
Часовой пояс GMT +4, время: 02:06. |
|
« Предыдущая тема | Следующая тема » |
|
|