TeoTN Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Mam pytanie: Załóżmy sytuację, w której mamy dwa obiekty o nazwie obj0. Po ich kliknięciu lpm zachodzi GML score+=1. Ale jeśli nałożymy je jeden na drugi (całkowicie bądź częściowo) to po kliknięciu na obszar, w którym "leżą" one na sobie, dostajemy punktów dwa. W jaki sposób można prosto sprawić, aby reagował tylko obiekt na wierzchu, zaś te przykryte (o ile zostaną kliknięte na zakryty fragment) już nie??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Borek Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Zmienna "score" jest zmienną globalną. Użyj zmiennej dla każdego obiektu, np. "punkty". Następnie w zdarzeniu kliknięcia myszą na obiekt daj: punkty -= 1; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 2 Października 2008 Autor Udostępnij Opublikowano 2 Października 2008 A jeżeli musi zostać użyta zmienna globalna?? np. jeśli chodzi o mouse_x ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Udostępnij Opublikowano 2 Października 2008 A co to ma wspólnego z punktami ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 2 Października 2008 Autor Udostępnij Opublikowano 2 Października 2008 To był tylko przykład, bo chodzi o skomplikowany kod, więc podałem na przykładzie punktów. No i nie chcę za zbytnio zdradzać nad czym teraz pracuję :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Udostępnij Opublikowano 2 Października 2008 ale nikt nie zabrania używania mouse_x ze zmiennymi lokalnymi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 2 Października 2008 Autor Udostępnij Opublikowano 2 Października 2008 Tylko chodzi mi o to, że Borek podał jako rozwiązanie mojego problemu zamianę globalnej score na lokalną punkty. Niestety nie mogę w ten sposób tego zamienić w przypadku mouse_x :/ Po prostu chodzi mi o to, żeby obiekt reagował na kliknięcie myszą, tylko jeśli kursor jest "bezpośrednio nad nim". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Od tego masz event mouse click. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 ustaw w create GML depth = random(-ilestu); i sprawdzaj który depth jest mniejszy temu doda punkty ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 No ok, a jak są 2 z tym samym depth? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 to sprawdza czy są te same i losuje następne ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Z Twojej odpowiedzi nic nie wynika. Więc zapytam po raz kolejny. Jak wybierzesz obiekt który jest na wierzchu jeśli oba mają ten sam depth? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Udostępnij Opublikowano 2 Października 2008 Jak będziesz losował, to losowy obiekt będzie na wierzchu, to jest bez sensu większego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 nie, ja mówię, że losować można podczas create obiektów ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 A ja mówię, że mogą być 2 obiekty o tym samym depth. I się pytam co wtedy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 to za miast depth weź id. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 no kurde tłumaczyć jak dziecku... Bierzesz 2 obiekty... każdy takie same, losujesz w create depth, sprawdzasz czy te obiekty po id maja taki sam depth jeżeli tak to losujesz znów, potem w evencie on mouse sprawdzasz który ma najmniejszy depth i temu właśnie dodajesz punkty. Nie mam tu gma, bo bym Ci pokazał na przykładzie... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Harrrry, bez sensu. Pieter, dalej bez sensu. Masz listę obiektów o ustalonym depth. Kilka z nich ma te same wartości. Co robisz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 a dużo zamierzasz mieć tych obiektów? jak nie to: GML while( true ) { depth = round( random( 9999999999 )) for( i = 0; i <= instance_count( obiekt ); i += 1 ) if ( instance_find( obiekt , i ). depth = depth ) { break; continue } break } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Harrrry, bez sensu. Wiem że bez sensu ale lepiej niż z depthami bo id masz zawsze unikalne... Ale ja bym to zrobił tak że w obj_cursor dał bym Glob left button i kod: GML with(obj0) if collision_point(blabla,bla,bla...) { score+=1; break; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 No tak, ale potrzebuję "najwyższego" obiektu. =D Dobra, macie zagadkę na noc. Idę spać. =P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 a nie można po prostu zrobić: GML depth = -id na pewno się nie powtórzy, bo id jest UNIKALNE. I obiekt najpóźniej tworzony będzie bardziej na wierzchu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Ale ja chcę obiekt "najwyższy" o obojętnie jakim depth, znaczy czy unikalnym czy nie. Byle był zawsze "najwyższym". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 GML min_id = 0 //zmienna przechowuje id obiektu z najmniejszym depth for( i = 0; i < instance_number( obiekt ); i += 1 ) { ID. instance_find( obiekt , i ) if ( ID.x = mouse_x and ID.y = mouse_y ) //jeśli obiekt znajduje się w poz myszki (=P) { if ( ID < min_id ) min_id = ID } } with( min_id ) punkty += 1 Tymcio dobrze? ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 no to najpierw prównujesz depthy a jak wyjdzie że są identyczne to porównujesz id obiektow^^ ten o mniejszym id bedzie na wierzchu(albo na odwrót, nie pamiętam)^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Obie propozycje złe. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 to zamiast spamić to podaj poprawną odpowiedź ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 no ale co źle? sprawdzam które obiekty znajdują się w poz myszki i zapisuje id najmniejszego :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 Ale ja chcę DEPTH. A nie obiekt o najmniejszym ID. Pieter, a co to była by za zabawa jakbym podał gotową odpowiedź? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 2 Października 2008 Udostępnij Opublikowano 2 Października 2008 a nie można po prostu zrobić:GML depth = -id na pewno się nie powtórzy, bo id jest UNIKALNE. I obiekt najpóźniej tworzony będzie bardziej na wierzchu.a czytałeś to? :P najnowszy obiekt ma najniższy depth. 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ę