Skocz do zawartości

zoptymalizowanie kodu


Marek.S

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

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