Skocz do zawartości

draw fat


Rekomendowane odpowiedzi

  • Filar Społeczności

Mimo iz Huder mowil zebym pod zadnym pozorem nie wstawial, wstawilem zeby nie bylo ze nic nie robie dla forum i tylko hejtuje.

GML (draw circle fat)
for (i=0; i<argument2; i+=1)

draw_circle(argument0,argument1,20+0.5*i,1);

/*

przyklad

draw_circle_fat(320,240,50)

| | |

x y grubosc okregu

(uzywane jak zwykle draw_circle, ale ostatni argument to grubosc zamiast outline)

*/

GML (draw rectangle fat)
draw_rectangle(argument0-argument4*0.5,argument1-argument4*0.5,argument0+argument4*0.5,argument3+argument4*0.5,0)

draw_rectangle(argument0-argument4*0.5,argument1-argument4*0.5,argument2+argument4*0.5,argument1+argument4*0.5,0)

draw_rectangle(argument0-argument4*0.5,argument3-argument4*0.5,argument2+argument4*0.5,argument3+argument4*0.5,0)

draw_rectangle(argument2-argument4*0.5,argument1-argument4*0.5,argument2+argument4*0.5,argument3+argument4*0.5,0)

/*

przyklad

draw_rectangle_fat(50,50,120,150,20)

| | | | |

x1 y1 x2 y2 grubosc

(uzywane jak zwykle draw_rectangle, ale ostatni argument to grubosc zamiast outline)

*/

Oba skrypty mają na celu narysowanie danych figur o dowolnej grubości, nie zaś o narzuconej z góry 1px (co mnie od zawsze bolało).

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Pytanie - co to twoje ma na celu? Rysuje tylko wypełniony prostokąt, a moje rysuje 4 wypełnione prostokąty (ścianki). Mógłbym zrobić to też za pomocą draw_line_width ale zostałyby w rogach puste przestrzenie i musiałbym rysować dodatkowo 4 kwadraciki (które na dodatek byłyby lekko krzywo), więc zrobiłem to tak.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Myslalem ze _fat na koncu nazw i "ostatni argument to grubosc zamiast outline" wszystko wyjasnia, ale dobra, moj blad ;p

No i nie robilbym skryptu ktory jest po prostu bardziej zawila wbudowana funkcja bo to by nie mialo sensu.

Odnośnik do komentarza
Udostępnij na innych stronach

ok Chell, zaliczylem faila :P

 

nie mniej jednak wypelniony prostokat z gruba ramka mozna zrobic tak:

GML
draw_set_color(argument5)

draw_rectangle(argument0-argument4,argument1-argument4,argument2+argument4,argument3+argument4,0)

draw_set_color(argument6)

draw_rectangle(argument0,argument1,argument2,argument3,0)

Odnośnik do komentarza
Udostępnij na innych stronach

GML (draw circle fat)
// draw_circle_fat( x, y, r, r2, prec )

r = argument2;

r2 = argument3;

dir = 360/argument4;

 

draw_primitive_begin( pr_trianglestrip )

for ( i = 0; i < 360; i += dir )

{

draw_vertex(argument0 + lengthdir_x(r, i-dir), argument1 + lengthdir_y(r, i-dir));

draw_vertex(argument0 + lengthdir_x(r, i ), argument1 + lengthdir_y(r, i ));

draw_vertex(argument0 + lengthdir_x(r2, i-dir), argument1 + lengthdir_y(r2, i-dir));

draw_vertex(argument0 + lengthdir_x(r2, i ), argument1 + lengthdir_y(r2, i ));

}

draw_primitive_end();

 

GML
// przykład użycia:

draw_circle_fat( x, y, 128, 256, 24 );

Można to zmodyfikować tak by rysował, otexturowany pierścień i nawet z cieniem.

 

 

 

Edit: zrobiłem też otexturowany:

GML
// draw_circle_fat_texture( x, y, r, r2, prec, texture, Wrepeat, Hrepeat )

r = argument2;

r2 = argument3;

dir = 360/argument4;

 

texture_set_repeat( true );

draw_primitive_begin_texture( pr_trianglestrip, argument5 );

for ( i = 0; i < 360; i += dir )

{

X = argument0 + lengthdir_x(r, i-dir); Y = argument1 + lengthdir_y(r, i-dir);

draw_vertex_texture( X, Y, X / argument6, Y / argument7 );

 

X = argument0 + lengthdir_x(r, i); Y = argument1 + lengthdir_y(r, i);

draw_vertex_texture( X, Y, X / argument6, Y / argument7 );

 

X = argument0 + lengthdir_x(r2, i-dir); Y = argument1 + lengthdir_y(r2, i-dir);

draw_vertex_texture( X, Y, X / argument6, Y / argument7 );

 

X = argument0 + lengthdir_x(r2, i); Y = argument1 + lengthdir_y(r2, i);

draw_vertex_texture( X, Y, X / argument6, Y / argument7 );

}

draw_primitive_end();

 

ringTextured.png

 

GML (uzycie)
draw_set_color(c_white);

draw_circle_fat_texture( x, y, 128, 256, 32, background_get_texture(grass), 128, 128 );

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ę...