GMC Bulgaria

Здравейте ( Вход | Регистрация )

 
Reply to this topicStart new topic
Progessive rotation script
DRD_Earth
коментар 22:38:02, 17-July-2007, Tuesday
Коментар #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;


--------------------
Go to the top of the page
 
+Quote Post
Crusader
коментар 01:27:34, 18-July-2007, Wednesday
Коментар #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
if point<0
{
point+=360
}
if point>180
{
face_direction+=tur/weg;
}
if point<180
{
face_direction-=tur/weg;
}


--------------------
Go to the top of the page
 
+Quote Post
Kумчо Вълчо
коментар 09:21:57, 18-July-2007, Wednesday
Коментар #3


Иво Георгиев
*****

Група: Потребител
Коментари: 887
Регистриран: 08.04.07
Потребител № 523



@Няма ли да обясниш аргументите на скрипта,и как се използва.Иначе аз го разбрах и е много добър,браво.
@Единия скрипт използва face direction а другия image_andgle и правя заключение че това са 2 съвсем различни скрипта
Go to the top of the page
 
+Quote Post
Crusader
коментар 11:42:44, 18-July-2007, Wednesday
Коментар #4


Пазителят на Граала
*

Група: Потребител
Коментари: 31
Регистриран: 05.09.06
Град: Монтана
Потребител № 156



Това се слага в step а в create се пише image_angle==face_direction а за горното argument0 е Х координата на целта argument1 е У координата на целта argument2 е скороста на ротациятя
edit:step sorry


--------------------
Go to the top of the page
 
+Quote Post
Kумчо Вълчо
коментар 11:51:19, 18-July-2007, Wednesday
Коментар #5


Иво Георгиев
*****

Група: Потребител
Коментари: 887
Регистриран: 08.04.07
Потребител № 523



Да разбрах какво имаш предвид.И аргументите ги разбрах по отдавна,но трябва в ония скрипт да се пише кои аргумент какво е!
Go to the top of the page
 
+Quote Post
DRD_Earth
коментар 13:12:31, 18-July-2007, Wednesday
Коментар #6


Новодошъл
*

Група: Потребител
Коментари: 24
Регистриран: 14.04.07
Потребител № 533



Цитат(Crusader @ 02:27:34, 18-July-2007, Wednesday) *
При мен е мн по-просто с едно момиче го решихме:
point=(face_direction-point_direction(x,y,instance_nearest(x,y,obj).x,instance_nearest(x,y,obj).y)) mod 360
if point<0
{
point+=360
}
if point>180
{
face_direction+=tur/weg;
}
if point<180
{
face_direction-=tur/weg;
}

Сложи /*comments*/ на твоя скрипт, че не мога да го разбера.

Цитат(Crusader @ 12:42:44, 18-July-2007, Wednesday) *
Това се слага в step а в create се пише image_angle==face_direction ...

Но не трябва ли image_angle==face_direction също да се сложи в step?


--------------------
Go to the top of the page
 
+Quote Post
Kумчо Вълчо
коментар 13:16:28, 18-July-2007, Wednesday
Коментар #7


Иво Георгиев
*****

Група: Потребител
Коментари: 887
Регистриран: 08.04.07
Потребител № 523



Ми може да е в бегин степ!!!
Go to the top of the page
 
+Quote Post
Crusader
коментар 14:37:10, 18-July-2007, Wednesday
Коментар #8


Пазителят на Граала
*

Група: Потребител
Коментари: 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(както е в случая)тогава ще се заварти на дясно.
Дано картината ви подскаже нещо за този "ТРУДЕН" пример !!!ПРЕДНИЦАТА Е ОТ ЛЯВО!!!


--------------------
Go to the top of the page
 
+Quote Post
Kумчо Вълчо
коментар 15:58:32, 18-July-2007, Wednesday
Коментар #9


Иво Георгиев
*****

Група: Потребител
Коментари: 887
Регистриран: 08.04.07
Потребител № 523



Ахам сега вече схванах напълно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 00:18:41, 06.07.25