level 11
//usage : scatterShoot(number,speed,maxAngle,centerDir,object)
var i,n,spd,obj,a,angle;
n = argument0 // number
spd = argument1 // speed
maxdir = argument2 //max angle 张角
center = argument3 //center direction 中心方向
obj = argument4 // object
angle = maxdir / n ;
if center=1{
dir = point_direction(x,y,player.x,player.y);
}
else if center=-1{
dir = random(360);
}
else{
dir = center;
}
if(n mod 2 == 1)
{
for(i=-(n-1)/2;i<=(n-1)/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir+angle*i;
a.speed = spd;
}
}
if(n mod 2 == 0)
{
for(i=-n/2;i<n/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir+angle*(i+0.5);
a.speed = spd;
}
}
2014年01月08日 10点01分
1
level 11
更新:
//usage : scatterShoot(number,maxSpeed,minSpeed,maxAngle,centerDir,object)
var i,n,spd,obj,a,angle;
n = argument0 // number
maxspd = argument1 // maxSpeed
minspd = argument2 // minSpeed
maxdir = argument3 //max angle
center = argument4 //center direction 1: to player , -1: random , else : the number you write
obj = argument5 // object
angle = maxdir / n ;
if center=1{
dir = point_direction(x,y,player.x,player.y);
}
else if center=-1{
dir = random(360);
}
else{
dir = center;
}
if(n mod 2 == 1)
{
sp = (maxspd - minspd) / ((n - 1) / 2) ;
for(i=-(n-1)/2;i<=(n-1)/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir + angle * i;
a.speed = maxspd - sp * abs(i);
}
}
if(n mod 2 == 0)
{
sp = (maxspd - minspd) / ((n - 2) / 2) ;
for(i=-n/2;i<n/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir + angle * (i + 0.5);
a.speed = maxspd - sp * (abs(i + 0.5) - 0.5);
}
}
2014年01月09日 07点01分
2
var 里面的spd改为maxspd,minspd
2014年01月09日 07点01分
level 11
//usage : scatterShoot(number,maxSpeed,minSpeed,maxAngle,centerDir,object,centerColor,sideColor,sin or not)
var i,n,maxspd,minspd,obj,a,angle,col1,col2,sine;
n = argument0 // number
maxspd = argument1 // maxSpeed
minspd = argument2 // minSpeed
maxdir = argument3 //max angle
center = argument4 //center direction 1: to player , -1: random , else : the number you write
obj = argument5 // object
col1 = argument6 //center color
col2 = argument7 //side color
sine = argument8 //sin or not
angle = maxdir / n ;
if col1 == 0
{
col1 = c_white;
}
if col2 == 0
{
col2 = c_white;
}
if center=1{
dir = point_direction(x,y,player.x,player.y);
}
else if center=-1{
dir = random(360);
}
else{
dir = center;
}
if(n mod 2 == 1)
{
sp = (maxspd - minspd) / ((n - 1) / 2) ;
for(i=-(n-1)/2;i<=(n-1)/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir + angle * i;
if sine{
a.speed = minspd + (maxspd - minspd)*cos(degtorad(90*i/((n-1)/2)));
}
else{
a.speed = maxspd - sp * abs(i);
}
a.image_blend = merge_color(col2,col1,(abs(i) / ((n - 1) / 2)));
}
}
if(n mod 2 == 0)
{
sp = (maxspd - minspd) / ((n - 2) / 2) ;
for(i=-n/2;i<n/2;i+=1)
{
a = instance_create(x,y,obj);
a.direction = dir + angle * (i + 0.5);
if sine{
a.speed = minspd + (maxspd - minspd)*cos(degtorad(90*(i+0.5)/((n-1)/2)))
}
else{
a.speed = maxspd - sp * (abs(i + 0.5) - 0.5);
}
a.image_blend = merge_color(col2,col1,((abs(i + 0.5) - 0.5) / (n - 2) / 2));
}
}
2014年01月10日 04点01分
3