Skocz do zawartości

Obiekt nie jest zaznaczany w step poprzez image_blend!


Paqoo
 Udostępnij

Rekomendowane odpowiedzi

if global.obiekt.zaznaczony=true{global.obiekt.image_blend=c_red;with(other){image_blend=c_white;}}else{global.obiekt.image_blend=c_white}

 

Zaznaczam gracza w celu wydawania poleceń. Klikam znowu, zaznaczenie znika.

 

Other jest do tego zeby zaznaczyc na bialo pozostalych. To jest ten sam obiekt, dlatego.

 

Jest dziwna sytuacja, poniewaz obiekt 1 tego typu nie reaguje na zaznaczenie - caly czas jest na bialo.

 

Co jest nie tak?

Odnośnik do komentarza
Udostępnij na innych stronach

Przeciez other nie odnosi sie do innych obiektow tego typu. Tam masz np id podczas kolizji. Wywal to bo to zupelnie niepotrzebne, wystarczy to co masz + przy kliku ustawianie zaznaczony=true;

#Edit: wait, po co jakis global obiekt? Parent nie wystarczy? A do globala wrzucac sobie id tego nad ktorym chcesz miec kontrole? Za duzo rzeczy naraz chcesz zrobic.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Nie wolisz zrobić tak, że przy kliknięciu na jednostkę (sprawdzasz to w jednostce) wszystkim ustawiasz ze nie podswietla, a później tej konkretnej co została kliknięta podświetlenie?

 

btw: jak piszesz większy projekt ogarnij lepiej ten kod bo wygląda jak...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

A czasem instance_nearest(mouse_x,mouse_y,nazwa_obiektu) nie zwróci Ci potrzebnego ID, żeby zmienić blend tylko dla jednego?

Co wiecej, to id możesz sobie przypisać do globalnej, i potem robić na zasadzie (pseudokod)

global.zapamietany.blend = white;
global.zapamietany = instance_nearest;
global.zapamietany.blend = red;

Odnośnik do komentarza
Udostępnij na innych stronach

Myslalem zeby zrobic cos takiego:

if wybralem=false{image_blend=c_red}else{image_blend=c_white}

 

Tylko jak oznaczyc, ze to obiekt wybrany?

with(global.obiekt.zaznaczony){
if wybralem=false{image_blend=c_red}else{with(id){image_blend=c_white}}
}

Odnośnik do komentarza
Udostępnij na innych stronach

Tak jak mówi Gnysek ||

 

W obj_jednostka w left_released -> zaznaczanie

GML
global.zaznaczona_jednostka= id;

zaznaczona = true;

 

W obj_jednostka w global right button -> prawym klik i jednostka sie odznacza

GML
zaznaczona=false;

global.zaznaczona_jednostka=noone;

 

W obj_jednostka w step

GML
if(zaznaczona){//(...)}</span></span>

 

Ta globalna akurat tutaj niepotrzebna ale moze się przydać kiedy pójdziesz tokiem Gnuska.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Skoro działa, to co za problem ? Mi działa to co podałem, w edytorze map mam 3 obiekty (jeden to pędzel do zaznaczania, jeden to wszystkie możliwe obiekty i jeden to kontroler tego wszystkiego) i zaznaczanie działa - ba, mam aż 5 różnych warstw w tym edytorze (trawy, drzewa, spawny, npc, questy) i dla wszystkich możliwość wstawnia, przesuwania, obracania i usuwania, zaznaczony obiekt mruga na czerwono i jakoś nie ma problemów - a nie mam takich dziwnych komplikacji.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

create w jakimś pojedynczym obiekcie który kontroluje grę:

 

GML
global.zapamietany = -1;

 

global mouse left pressed w jakims pojedynczym obiekcie:

 

GML
if (global.zapamietany > 0){

global.zapamietany.image_blend = c_white;

}

global.zapamietany = instance_nearest(mouse_x,mouse_y,obiekt_jakiego_szukamy_do_zaznaczenia);

global.zapamietany.image_blend = c_red;

 

Ten kod juz podałem w wersji pseudokodu, teraz masz pełen.

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ę
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...