Skocz do zawartości

Obiekt za szybki...


Zając

Rekomendowane odpowiedzi

Racja wtedy można zrobić tak:

parenty.png

 

GML
if ( collision_line( xprevious, yprevious, x, y, p_shootable, 0, 0 ) )

{

_other = collision_while( xprevious, yprevious, p_shootable )

if ( _other > 0 )

switch ( _other.object_index )

{

case obj_walker:

instance_destroy(); // pocisk się zniszczy

with ( _other ) instance_destroy(); // przeciwnik takze

break;

 

case obj_block:

instance_destroy(); break; // tutaj tylko pocisk sie zniszczy ( sciana nie )

break;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

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()

}

Odnośnik do komentarza
Udostępnij na innych stronach

Racja wtedy można zrobić tak:

parenty.png

 

GML
if ( collision_line( xprevious, yprevious, x, y, p_shootable, 0, 0 ) )

{

_other = collision_while( xprevious, yprevious, p_shootable )

if ( _other > 0 )

switch ( _other.object_index )

{

case obj_walker:

instance_destroy(); // pocisk się zniszczy

with ( _other ) instance_destroy(); // przeciwnik takze

break;

 

case obj_block:

instance_destroy(); break; // tutaj tylko pocisk sie zniszczy ( sciana nie )

break;

}

}

 

 

Kurde no... Mam w kodzie coś takiego a jak napotka ściante to leci przez nią pocisk powoli, cholera wie czemu zamiast się zniszczyć. Przy kolizji z obj_walker działa dobrze...

 

GML
if ( collision_line( xprevious, yprevious, x, y, p_shootable, 0, 0 ) )

{

_other = collision_while( xprevious, yprevious, p_shootable )

if ( _other > 0 )

switch ( _other.object_index )

{

case obj_walker:

instance_destroy(); // pocisk się zniszczy

with ( _other ) s_walkercol(); // przeciwnik takze

break;

 

case obj_block:

instance_destroy(); break // tutaj tylko pocisk sie zniszczy ( sciana nie )

break;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

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()

}

 

A tu mi wywalają errory przy log'ach jakieś z tego skryptu :mellow:

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...