Wezyr Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 Chcę aby niezależnie od image_xscale i image_yscale była na obiekt nakładana tekstura. Bez niczego wygląda to tak: A chcę aby wyglądało tak: Próbowałem coś z vertexami ale za bardzo mi nie wychodziło, i do końca nie wiem czy to w tym kościele dzwoniło. Jakieś sugestie ??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 Czy wymiary nakładanej tekstury mają być kolejnymi wielokrotnościami długości boków samej tekstury? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wezyr Opublikowano 30 Października 2008 Autor Udostępnij Opublikowano 30 Października 2008 Chodzi ci o to, że jeśli textura jest 32x32, sprite jest 32x32 to nakładamy jedną. A jeśli dam image_xscale=2 i image_yscale=2 to będą nakładane dwie ? Jeśli o to to TAK Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 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 Więcej opcji udostępniania...
Yoda Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 A jeśli dam image_xscale=2 i image_yscale=2 to będą nakładane dwie ? A nie 4? :> 2*2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wezyr Opublikowano 30 Października 2008 Autor Udostępnij Opublikowano 30 Października 2008 To działa ale nie do końca dobrze bo ja potrzebuje dodawać image_xscale+=0.2 na przykład, a ja bym chciał żeby w jakiś sposób ucinało. W twoim kodzie jesli image_xscale=1.2 to on rysuje jakby image_xscale wynosiło 2. Wiesz jak zrobić ten "uciananie" ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 Dlatego pytałem się, czy to mają być kolejne wielokrotności... :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wezyr Opublikowano 30 Października 2008 Autor Udostępnij Opublikowano 30 Października 2008 Sory, źle ciebie zrozumiałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 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 Więcej opcji udostępniania...
Wezyr Opublikowano 30 Października 2008 Autor Udostępnij Opublikowano 30 Października 2008 Nie chciałbym marudzić ale ten kod nie działa. Te "party" tworzą się w dziwnych miejscach, zupełnie nie wiem dlaczego :[ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 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 Więcej opcji udostępniania...
Wezyr Opublikowano 30 Października 2008 Autor Udostępnij Opublikowano 30 Października 2008 Nie skopiował bym bezmyślnie jakbym umiał i i wiedział o co w tym kodzie biega :[ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 Ale jak widzisz, że jest X tam gdzie powinno być Y... no dobra. Niech Ci będzie. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 30 Października 2008 Udostępnij Opublikowano 30 Października 2008 Nie skopiował bym bezmyślnie jakbym umiał i i wiedział o co w tym kodzie biega :[ Przecież wystarczy się tylko wczytać i przeanalizować kod q_q Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wezyr Opublikowano 3 Listopada 2008 Autor Udostępnij Opublikowano 3 Listopada 2008 Dzięki Tymon, działa ale mam jeszcze jeden problem, a mianowicie nie wiem jak dostosować ten kod do image_angle, bo w rysowaniu partów nie można tego ustawić. Wiesz może jak to zrobić ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 3 Listopada 2008 Udostępnij Opublikowano 3 Listopada 2008 GML draw_sprite_general() ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wezyr Opublikowano 3 Listopada 2008 Autor Udostępnij Opublikowano 3 Listopada 2008 Ale mi chodziło jak dostosować TOdo image_angle: GML draw_sprite_part() bo nie wiem :[ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Japanstache Opublikowano 3 Listopada 2008 Udostępnij Opublikowano 3 Listopada 2008 GML draw_sprite_part_ext ED: aww, nie obejrzałem kodu i tam nie ma kąta ; ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 3 Listopada 2008 Udostępnij Opublikowano 3 Listopada 2008 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 Więcej opcji udostępniania...
Wezyr Opublikowano 3 Listopada 2008 Autor Udostępnij Opublikowano 3 Listopada 2008 Dziękuje, działa perfekt ! A temat zamykam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi