Marek.S Opublikowano 5 Lutego 2008 Opublikowano 5 Lutego 2008 hej. Potrzebuję pomocy z zoptymalizowaniem tego kodu: GML var rys , l; l=4 /*------------ poziome -------------*/ s = sign(w) if (s = 1)for_='return i <= w' if (s = 0)for_='break' if (s =-1)for_='return i >= w' rys=1 for (i=0; execute_string(for_); i+=1 *s ) { rys+=1 if (rys<=l){ draw_point(xx+i,yy) draw_point(xx+i,yy+h) } if (rys>=2*l)rys=0 } /*----------- pionowe --------------*/ s = sign(h) if (s = 1)for_='return j <= h' if (s = 0)for_='break' if (s =-1)for_='return j >= h' rys=1 for (j=0; execute_string(for_); j+=1 *s ) { rys+=1 if (rys<=l){ draw_point(xx,yy+j) draw_point(xx+w,yy+j) } if (rys>=2*l)rys=0 } //by Marek kod w tej postaci strasznie spowalnia pracę gm'a jak by ktoś nie mógł się skapnąć to skrypt rysuje prostokątne zaznaczenie przerywanymi liniami (coś ala w paint'cie) ;)
Cekol Opublikowano 5 Lutego 2008 Opublikowano 5 Lutego 2008 Ja bym radził inną metodę. zrób 2 rysunki linii. poziomą i pionową. A rysować je będziesz za pomocą draw_sprite_part. Np: GML var xx,yy,toxx,toyy; xx=argument0; yy=argument1; toxx=argument2; toyy=argument3; draw_sprite_part(spr_line1,-1,0,0,xx-toxx,1,xx,yy); draw_sprite_part(spr_line1,-1,0,0,xx-toxx,1,xx,toyy); draw_sprite_part(spr_line2,-1,0,0,1,yy-toyy,xx,yy); draw_sprite_part(spr_line2,-1,0,0,1,yy-toyy,toxx,yy); Moze nie działać bo pisałem z pamięci :P
Dawidds Opublikowano 5 Lutego 2008 Opublikowano 5 Lutego 2008 Rzeczywiście niezoptymalizowany :P Zrobiłem se, żeby było zaznaczenie myszką - ścina że hoho :P Spostrzeżenia: 1) Zamiast draw_point() lepsze będzie draw_line(). 2) Ja też bym radził coś ze spritami... bo drawem ciężko... 3) To na tyle :P PS: Pomysłowo zrobione to z for_ :P
Pieter Opublikowano 5 Lutego 2008 Opublikowano 5 Lutego 2008 https://gmclan.org/up44_11_x_X.html coś dla ciebie... Prosto wyjęte z mojego Belt Generatora (dzięki Tymon :*).
Nobody Opublikowano 5 Lutego 2008 Opublikowano 5 Lutego 2008 Bleeee... Nie mozna zaznaczac w lewo ani w gore, tylko prawo-dol, na dodatek juz przy kliknieciu tworzy kwadracik ^^
Pieter Opublikowano 6 Lutego 2008 Opublikowano 6 Lutego 2008 To nie dla ciebie więc się mógł byś nie wypowiadać... Poza tym jak byś był chodź trochę doświadczony to byś bez problemu to dostosował do swoich potrzeb. Tu nie chodzi o funkcjonalność tylko optymalizacje -_- a to zaznaczanie myszką zrobiłem od tak na szybko żeby pokazać że to działa...
Marek.S Opublikowano 7 Lutego 2008 Autor Opublikowano 7 Lutego 2008 Dzięki wszystkim (zwłaszcza Pieter'owi za exampla), jakoś poszło =) działa sprawnie do boku długości a = 1500 :D
Rekomendowane odpowiedzi
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ę