Kombinujecie jak koń pod górę : O
W pocisku dodaj zmienne iii, xx i yy.
Skrypt collision_bin, który napisałem dawno i jest do znalezienia na forum bez problemu (argumenty dokładnie takie same jak w collision_line):
GML
var x1,x2,y1,y2,obj,prec,notme;
x1 = argument0
x2 = argument2
y1 = argument1
y2 = argument3
obj = argument4
prec = argument5
notme = argument6
if(collision_line(x1,y1,x2,y2,obj,prec,notme))
{
repeat(log2(point_distance(x1,y1,x2,y2)))
{
if(collision_line(x1,y1,mean(x1,x2),mean(y1,y2),obj,prec,notme))
{
x2 = mean(x1,x2)
y2 = mean(y1,y2)
}
else
{
x1 = mean(x1,x2)
y1 = mean(y1,y2)
}
}
xx = x2
yy = y2
return 1
}
else
{
xx = x2
yy = y2
return 0
exit
}
Teraz Step obiektu pocisk:
GML
collision_bin(xprevious,yprevious,x,y,all,1,1)
iii = collision_point(xx,yy,all,1,1)
if(iii)
{
if(iii.object_index = wrog)
{
with(iii)
{
//kod, gdy pocisk zderza się z wrogiem
}
instance_destroy()
}
else if(iii.object_index = sciana) instance_destroy()
}