GMLscripts.com

Discuss and collaborate on GML scripts
Invert

You are not logged in.

#1 2008-12-19 20:51:29

icuurd12b42
Member
Registered: 2008-12-11
Posts: 303

mergefromto

Expand/*
**  Usage:
**      v = mergefromto(from,to,value);
**
**  Arguments:
**      from           value to return if value is 0
**      to           value to return if value is 1
**      value           a value from 0 to 1
**
**  Returns:
**      v          like merge_color, it returns "from" when value is 0, "to" when value is 1 an appropriate in between value when value is between 0 and 1
**
**  Notes:
**      ret = mergefromto(value if 0, value if 1, 0 to 1)
**      calculating percent
**      percent = mergefromto(0,100,curval/maxval);
**      calculating some odd range
**      centerXoffset = mergefromto(-320,320,mouse_x/screen_width);
**
**  GMLscripts.com
*/

return(argument0+(argument1-argument0)*argument2)

I can't find a better name for it

Offline

#2 2009-12-20 22:32:57

Yourself
Member
Registered: 2007-10-09
Posts: 48

Re: mergefromto

How about lerp?

Offline

#3 2008-12-21 15:30:54

icuurd12b42
Member
Registered: 2008-12-11
Posts: 303

Re: mergefromto

[ MISSING ]

Offline

#4 2009-03-04 20:38:44

Andy_Wolff
Member
Registered: 2009-03-04
Posts: 1

Re: mergefromto

hey, awesome script
tongue

I have the same exact function, but I like calling it merge_number() instead
I've been using it for pretty much everything since I figured it out a few years ago

Also useful in this area of number merging are these scripts:

unmerge_number(merged value,n1,n2), the reverse of merge number. for example, merge_number(n1,n2,unmerge_number(x,n1,n2)) will always return x

Expand// unmerge_number(merged number, n1, n2)
if argument2-argument1!=0
return ((argument0-argument1)/(argument2-argument1))
else return 0

and

merge_direction(dir1,dir2,merge),  which works the same as merge number but will merge two directions, even if they are outside of 360 degrees (however it will not always return a direction between 0 and 360)

Expand//merge_direction(num1,num2,merging value)

while argument0>360 argument0-=360
while argument1>360 argument1-=360
while argument0<0 argument0+=360
while argument1<0 argument1+=360

if argument0>=180 {if argument1<180 and argument1<argument0-180 argument1+=360}
else if argument0<180 {if argument1>=180 and argument1>argument0+180 argument1-=360}

return merge_number(argument0,argument1,argument2)

Offline

Board footer

Powered by FluxBB