Ignifil Opublikowano 23 Maja 2010 Udostępnij Opublikowano 23 Maja 2010 Mam w jednym roomie pięć objectów orc. Jak kliknę na jednego to jego zmienna zaznaczony = true. Chciałbym zrobić tak zeby po ponownym kliknieciu na inny object orc niz ten zaznaczony zaznaczenie tego pierwszego znikalo(zaznaczony = false). Ale wtedy sie odznacza odrazu jak klikam, czyli poprostu zmienia zmienna zaznaczony na true ale tylko na sekunde(lub nawet mniej). A drugie pytanie to: Jak zrobić rysowanie zielonego prostokata do zaznaczania, tak zeby kazdy object wewnatrz niego zmienial zmienna zaznaczony na true. Czyli poprostu zaznaczanie jak w grach strategicznych. ps. Przepraszam za dwa tematy jeden po drugim :unsure: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 23 Maja 2010 Udostępnij Opublikowano 23 Maja 2010 W global mouse pressed daj zaznaczony = false; a dla zwykłego mouse pressed zaznaczony = true;. Za każdym kliknięciem myszki wszystkie jednostki zostaną odznaczone i zaznaczona zostanie tylko ta, na której jest myszka. Co do prostokąta, polecam zrobić jakiś obiekt kontrolny, w którym dałbyś tak: Create: GML xx = 0; yy = 0; Step: GML if( mouse_check_button_pressed( mb_left ) ){ xx = mouse_x; yy = mouse_y; } if( mouse_check_button_released( mb_left ) ) { with( obj_jednostka ) { if( x >= min( other.xx, mouse_x ) && x <= max( other.xx, mouse_x ) && y >= min( other.yy, mouse_y ) && y <= max( other.yy, mouse_y ) ) zaznaczony = true; else zaznaczony = false; } } Draw: GML if( mouse_check_button( mb_left ) ) draw_rectangle( xx, yy, mouse_x, mouse_y, true ); Zrób też nowy obiekt, nazwij go obj_jednostka i dla każdej jednostki ustaw go jako parenta. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 23 Maja 2010 Autor Udostępnij Opublikowano 23 Maja 2010 Nie działa. Jak klikam to object nie jest zaznaczony, tak jak wcześniej. A co do tego zaznaczenia to ja mam to wpisać w tym objectcie obj_jednostka? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 23 Maja 2010 Udostępnij Opublikowano 23 Maja 2010 Akurat pracuję nad RTS wiec Co pomogę. W create jedn daj zmienną zaznaczona=false; w left presed zaznaczona=true; w global left button zaznaczona=false; i tak w kazdej jednostce; Co do kwadrata to zrobiłem tak- Zrób obj_rys CREATE GML global.xx1=0 global.yy1=0 global.xx2=0 global.yy2=0 GLOBAL LEFT BUTTON GML global.xx2=mouse_x global.yy2=mouse_y GLOBQAL LEFT PRESSED GML global.xx1=mouse_x global.yy1=mouse_y GLOBAL LEFT RELEASED GML global.xx1=0 global.yy1=0 global.xx2=0 global.yy2=0 DRAW GML draw_rectangle(global.xx1,global.yy1,global.xx2,global.yy2,1) TERAZ W STEP JEDNOSTKI GML // ZAZNACZANIE KWADRATEM if collision_rectangle(global.xx1,global.yy1,global.xx2,global.yy2,id,1,0) { zaznaczona=true } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 25 Maja 2010 Autor Udostępnij Opublikowano 25 Maja 2010 Akurat pracuję nad RTS wiec Co pomogę. W create jedn daj zmienną zaznaczona=false; w left presed zaznaczona=true; w global left button zaznaczona=false; i tak w kazdej jednostce; Co do kwadrata to zrobiłem tak- Zrób obj_rys CREATE GMLglobal.xx1=0 global.yy1=0 global.xx2=0 global.yy2=0 GLOBAL LEFT BUTTON GMLglobal.xx2=mouse_x global.yy2=mouse_y GLOBQAL LEFT PRESSED GMLglobal.xx1=mouse_x global.yy1=mouse_y GLOBAL LEFT RELEASED GMLglobal.xx1=0 global.yy1=0 global.xx2=0 global.yy2=0 DRAW GMLdraw_rectangle(global.xx1,global.yy1,global.xx2,global.yy2,1) TERAZ W STEP JEDNOSTKI GML// ZAZNACZANIE KWADRATEM if collision_rectangle(global.xx1,global.yy1,global.xx2,global.yy2,id,1,0) { zaznaczona=true } no tak ale przecierz gdy klikam to poprostu się rysuje a ja bym chciał żeby ten kwadrat powiększał/pomniejszał za myszką tak długo dopóki nie puszczę Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 25 Maja 2010 Udostępnij Opublikowano 25 Maja 2010 No a to jak niby działa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dzaher Opublikowano 25 Maja 2010 Udostępnij Opublikowano 25 Maja 2010 Masz tu przykład zaznaczenia jednostki: Przyklad Zawsze najlepiej się uczy na przykładach :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 25 Maja 2010 Udostępnij Opublikowano 25 Maja 2010 ale jak przykład jest o jednej rzeczy a nie o 10 na raz... wszystko się pierrrr...dzieli ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 25 Maja 2010 Autor Udostępnij Opublikowano 25 Maja 2010 Masz tu przykład zaznaczenia jednostki: Przyklad Zawsze najlepiej się uczy na przykładach :) ja mam gm 7 a nie 8 :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 25 Maja 2010 Udostępnij Opublikowano 25 Maja 2010 Obiekt zanacz: GML xx = x yy= y tryb = 0 Global Left Pressed: GML xx = mouse_x yy = mouse_y tryb = 1 Global Left Released: GML tryb = 0 Step: GML if(tryb = 1) with(all) if(variable_local_exists('zaznaczona)) if(collision_rectangle(zanacz.x,zanacz.yy,mouse_x,mouse_y,self,false,false)) zaznaczona = 1 else zaznaczona = 0</span> Draw: GML draw_set_color(c_white) draw_rectangle(xx,yy,mouse_x,mouse_y,true) Sadze, ze nie bedzie dzialac, jesli nie, to zdefiniuj skrypt 'pole', ktory bedzie sprawdzal, czy obiekt znajduje sie w danym prostokacie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 25 Maja 2010 Autor Udostępnij Opublikowano 25 Maja 2010 Masz tu przykład zaznaczenia jednostki: Przyklad Zawsze najlepiej się uczy na przykładach :) ok. jakoś poszło, (nie pytaj...) i wszystko okej wielkie dzięki kocham cię! Ale mam również skrypt w step if zaznaczony = true { sound_play(choose(What1,What2,What3,What4)) } ale jak jest zaznaczony to tak nawija wszystko naraz i bez przerwy, tak długo jak jest zaznaczony a miałobyć jednorazowo, jak to zrobić!? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 25 Maja 2010 Udostępnij Opublikowano 25 Maja 2010 Nie dawaj tego w Step, tylko w evencie, gdzie konczysz zaznaczac. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę