Skocz do zawartości

Wydajne rysowanie


cysior

Rekomendowane odpowiedzi

Witam! Od jakiegoś czasu w wolnych chwilach tworzę pewien projekt i mam takie pytanie, jak według was najwydajniej rysować spr 32x32, ktore są czasem rysowane na jednej pozycji ( przykładowo jakis spr tarczy, a nad nią mieczyk ).

Chodzi mi o takie dynamiczne rysowanie i usuwanie. Powiedzmy, że mam tablice dwuwymiarowe, które zawierają informację o itemach na danej kratce. np. tablica[1,1]="1024,1025,"

 

Z góry dzięki za pomoc.

 

E: co do skupiska itemów to powiedzmy ze jak view ma około 500 kratek, to fajnie by było jakby dało się normalnie rysować itemki na tych 50-100 kratkach.

Odnośnik do komentarza
Udostępnij na innych stronach

A czy te itemki nachodzące na siebie są 2 różnymi obiektami czy to tylko sprity. Bo jak są obiektami to możesz zrobić coś takiego:

 

1. Leży sobie miecz

2. Tarcza się pojawia na tej samej pozycji ale widząc że jest już zajęta, nakazuje deaktywować obiekt leżący niżej. Zapisuje sobie do jakiejś zmiennej zdeaktywowany obiekt.

3. Gdy tarcza zostaje podniesiona to aktywuje ten obiekt, który sobie zapisała w zmiennej.

Odnośnik do komentarza
Udostępnij na innych stronach

@up chodzi mi bardzej o coś takiego

images.jpg

A jak miałeś to na myśli to wybacz.

 

I tu pojawia się moje pytanie czy lepiej to robić w jednym obj czy tworzyć objekty.

Bo kiedyś miałem kod, który sprawdzał kazda kratkę i jak coś znalazł to sprawdzał czy jest tam kilka itemów a potem dzielił i rysował. Niestety fps widocznie spadały.

Wpadłem na taki pomysł

 

GML
var sta,dod,dabs;

 

for(n=0;n<100;n+=1)

for(m=0;m<100;m+=1)

{

 

pomoc=string_delete(global.map0[n,m],1,string_pos("@",global.map0[n,m])) // pomoc to id itemów na danej kratce np. = " 1024,1030,"

if string_length(pomoc)>0

{

for(g=1;g<=string_count(",",pomoc);g+=1)

{

pomoc2[g]=string_copy(pomoc,-5+5*g+1,5)

global.pselist[n,m]+=pomoc2[g]

 

jakto[g]=string_copy(global.pselist[n,m],1+(-5+5*g),5)

 

 

ii=instance_create(32*n,32*m,obj_item)

ii.sprite_index=sk_itespr(jakto[g])

}

 

 

 

}

 

 

}

 

Tylko za bardzo nie wiem jak zrobić żeby na kratkach których wartość stringu nie uległa zmianie, nic nie robić a na tych drugich zrobić nowy item i usunać stary.

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