Skocz do zawartości

Zablokowane Nakładanie tekstur


Wezyr

Rekomendowane odpowiedzi

GML
w = sprite_get_width( tekstura );

h = sprite_get_height( tekstura );

 

mx = w * image_xscale;

my = h * image_yscale;

 

for( yy = 0; yy < my; yy += h )

{

for( xx = 0; xx < mx; xx += w )

{

draw_sprite( tekstura, 0, x + xx, y + yy );

}

}

Zakładając że to sprite.
Odnośnik do komentarza
Udostępnij na innych stronach

Tak łopatologicznie:

GML
w = sprite_get_width( tekstura );

h = sprite_get_height( tekstura );

 

mx = w * floor( image_xscale );

my = h * floor( image_yscale );

 

for( yy = 0; yy < my; yy += h )

{

for( xx = 0; xx < mx; xx += w )

{

draw_sprite( tekstura, 0, x + xx, y + yy );

}

}

 

px = image_xscale mod 1;

if( px != 0 )

{

wx = w * px;

for( yyy = 0; yyy < my; yyy += h )

{

draw_sprite_part( tekstura, 0, 0, 0, wx, h, xx + x, yyy + x );

}

}

 

py = image_yscale mod 1;

if( py != 0 )

{

hy = h * py;

for( xxx = 0; xxx < mx; xxx += w )

{

draw_sprite_part( tekstura, 0, 0, 0, w, hy, xxx + x, yy + x );

}

}

 

if( px != 0 && py != 0 )

{

draw_sprite_part( tekstura, 0, 0, 0, wx, hy, xx + x, yy + x );

}

Odnośnik do komentarza
Udostępnij na innych stronach

Oj, nie sprawdzisz mnie tylko bezmyślnie kopiujesz. Skopiowałem i nie podmieniłem X na Y.

GML
w = sprite_get_width( tekstura );

h = sprite_get_height( tekstura );

 

mx = w * floor( image_xscale );

my = h * floor( image_yscale );

 

for( yy = 0; yy < my; yy += h )

{

for( xx = 0; xx < mx; xx += w )

{

draw_sprite( tekstura, 0, x + xx, y + yy );

}

}

 

px = image_xscale mod 1;

if( px != 0 )

{

wx = w * px;

for( yyy = 0; yyy < my; yyy += h )

{

draw_sprite_part( tekstura, 0, 0, 0, wx, h, mx + x, yyy + y );

}

}

 

py = image_yscale mod 1;

if( py != 0 )

{

hy = h * py;

for( xxx = 0; xxx < mx; xxx += w )

{

draw_sprite_part( tekstura, 0, 0, 0, w, hy, xxx + x, my + y );

}

}

 

if( px != 0 && py != 0 )

{

draw_sprite_part( tekstura, 0, 0, 0, wx, hy, mx + x, my + y );

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
w = sprite_get_width( tekstura );

h = sprite_get_height( tekstura );

 

mx = ceil( image_xscale );

my = ceil( image_yscale );

 

for( yy = 0; yy < my; yy += 1 )

{

hyy = h * yy;

for( xx = 0; xx < mx; xx += 1 )

{

d = point_distance( 0, 0, w * xx, hyy );

a = point_direction( 0, 0, w * xx , hyy );

sx = min( 1, image_xscale - xx );

sy = min( 1, image_yscale - yy );

if( sx != 1 || sy != 1 )

{

draw_sprite_general( tekstura, 0, 0, 0, w * sx, h * sy, x + lengthdir_x( d, image_angle + a ), y + lengthdir_y( d, image_angle + a ), 1, 1, image_angle, image_blend, image_blend, image_blend, image_blend, image_alpha );

}

else

{

draw_sprite_ext( tekstura, 0, x + lengthdir_x( d, image_angle + a ), y + lengthdir_y( d, image_angle + a ), 1, 1, image_angle, image_blend, image_alpha );

}

}

}

Coś w tym stylu, nie wiem czy dobrze. Nie mogę sprawdzić.
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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