Skocz do zawartości

Obiekt nie jest zaznaczany w step poprzez image_blend!


Rekomendowane odpowiedzi

Opublikowano

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?

Opublikowano

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.

  • Filar Społeczności
Opublikowano

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

  • Administratorzy
Opublikowano

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;

Opublikowano

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

Opublikowano

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.

  • Administratorzy
Opublikowano

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.

Opublikowano

Zacznij najpierw sam działać.

 

Rozwiązania masz. Zrób coś więcej niż Ctrl+C, Ctrl+V

 

EDIT:

Miłego czekania!

lubieto.png

Opublikowano

ten człowiek nawet nie umie dobrze zrobić ctrl+c i ctrl+v (kod alwina jest gotowy do użycia)

 

jemu już nic nie pomoże

  • Administratorzy
Opublikowano

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.

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