Skocz do zawartości

Przejmowanie parametrów


Phoenix

Rekomendowane odpowiedzi

Witam, robię sobie mały generator i tworzy on takie coś:

 

Colors.png

 

Każdy taki kwadracik będzie mieć swój tag np. otwarta przestrzeń, łąka itp. Te tagi będą dawały konkretne parametry. Siła danego parametru będzie zależeć od image_alpha i image_xscale/yscale, dość prosty mechanizm.

 

Teraz chcę postawić w dowolnym punkcie kulkę. A ta kulka ma "wczytać" do siebie parametry tych kwadratów, na których została utworzona. Ktoś ma jakiś pomysł jak takie wczytywanie, czy też wchłanianie tych wartości zrobić?

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jedyne sensowne rozwiązanie to przelecenie przez wszystkie istniejące kwadraty. Wtedy dopiero dla każdego z nich przeprowadzić warunek sprawdzający.

 

Chyba ze byś stworzył sobie siatkę o stałej szerokości np 128px która byłaby tablicą 2D albo ds_grid. Każda komórka z tablicy będzie potem przechowywała tablicę 1D albo listę wszystkich kwadratów które są w tej siatce. Wtedy tworząc kulkę możesz iterować przez wszystkie kwadraty z danej komórki + 4 albo 8 sąsiednich. Ja bym tak chyba zrobił.

 

Edit:

Coś takiego.

GML
//Tworzenie

var i = instance_create(irandom(room_width), irandom(room_height), kwadrat)

var list = ds_grid_get(grid, floor(i.x/128), floor(i.y/128))

ds_list_add(list, i)

 

//Pobieranie

for(var n=0; n<ds_list_size(list); n++) {

var inst = ds_list_find_value(list, n)

if(inst.image_alpha<0.5) {

//Do stuff

}

}

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