Progessive rotation script |
Здравейте ( Вход | Регистрация )
Progessive rotation script |
![]()
Коментар
#1
|
|
![]() Новодошъл ![]() Група: Потребител Коментари: 24 Регистриран: 14.04.07 Потребител № 533 ![]() |
Ето един скрипт, който написах отдавна. Този скрипт служи за плавно завъртане на обект към дадени координати.
Код var mdir,dif,dir,rot,trgx,trgy;
dir=image_angle; trgx=argument0;//target's x trgy=argument1;//target's y mdir=point_direction(x,y,trgx,trgy);//target direction dif=abs(mdir-dir);//difference angle rot=argument2;//the rotational step if(mdir>dir) {if(dif<180) image_angle+=rot; else image_angle-=rot; } else if(mdir<dir) {if(dif<180) image_angle-=rot; else image_angle+=rot; } if(dif<rot) image_angle=mdir; if(image_angle<0) image_angle+=360; if(image_angle>360) image_angle-=360; -------------------- |
|
|
![]() |
![]() ![]()
Коментар
#2
|
|
![]() Пазителят на Граала ![]() Група: Потребител Коментари: 31 Регистриран: 05.09.06 Град: Монтана Потребител № 156 ![]() |
point=(face_direction-point_direction(x,y,instance_nearest(x,y,obj).x,instance_nearest(x,y,obj).y)) mod 360
аз сам се обарнал на 80 градуса а целта ми е на 270 та започваме така: моятя посока-неговата посока(80-270)=на point(-190) if point<0 { point+=360 } после ако point(-190) е ПО-малко от 0 (за случая е) тогава прибавяме 360 кам point(-190+360=170) if point>180 { face_direction+=zavartane; } if point<180 { face_direction-=zavartane; } и ето че идва момента в който нашия AI не само че знае да се варти,но и разбира от коя посока е ПО-пряко като се проверява дали point(нашето получено число)не е ПО-голямо от 180.Ако е така тогава ще се заварти на ляво.Ако е ПО-малко от 180(както е в случая)тогава ще се заварти на дясно. Дано картината ви подскаже нещо за този "ТРУДЕН" пример !!!ПРЕДНИЦАТА Е ОТ ЛЯВО!!! ![]() -------------------- |
|
|
![]() ![]() |
Олекотена версия | Час: 22:52:26, 05.07.25 |