Skocz do zawartości

Cropping ds_grid


Threef

Rekomendowane odpowiedzi

Mam ogromnych rozmiarów ds_grid, który jest zapełniony tylko w niewielkim stopniu gdzieś na środku. Muszę pozbyć się zbędnej przestrzeni. Próbowałem zrobić to w ten sposób:

GML
for(xx=0;xx<w;xx+=1)

{

if(ds_grid_value_exists(ds_maze,xx,0,xx,h,-1)){x_min=xx;break}

}

 

for(xx=w;xx>0;xx-=1)

{

if(ds_grid_value_exists(ds_maze,xx,0,xx,h,-1)){x_max=xx;break}

}

 

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

{

if(ds_grid_value_exists(ds_maze,0,yy,w,yy,-1)){y_min=yy;break}

}

 

for(yy=h;yy>0;yy-=1)

{

if(ds_grid_value_exists(ds_maze,0,yy,w,yy,-1)){y_max=yy;break}

}

 

w=x_max-x_min+3

h=y_max-y_min+3

ds_copy=ds_grid_create(w,h)

ds_grid_clear(ds_copy,1)

ds_grid_set_grid_region(ds_copy,ds_maze,x_min-1,y_min-1,x_max+1,y_max+1,0,0)

ds_grid_resize(ds_maze,w,h)

ds_grid_clear(ds_maze,1)

ds_grid_set_grid_region(ds_maze,ds_copy,0,0,ds_grid_width(ds_copy),ds_grid_height(ds_copy),0,0)

ds_grid_destroy(ds_copy)

Wartość 1 oznacza puste, -1 zajęte.

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie to staram się zrobić. Może źle podchodzę do sprawdzenia rozmiaru? Chociaż teraz zrobiłem sobie mini mapkę na której wyświetlam cały grid, i widzę że dobrze kopiuję Y, ale X zostaje taki jaki był.

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