TeoTN Opublikowano 2 Października 2008 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???
Borek Opublikowano 2 Października 2008 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;
TeoTN Opublikowano 2 Października 2008 Autor Opublikowano 2 Października 2008 A jeżeli musi zostać użyta zmienna globalna?? np. jeśli chodzi o mouse_x ??
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Opublikowano 2 Października 2008 A co to ma wspólnego z punktami ?
TeoTN Opublikowano 2 Października 2008 Autor 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
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Opublikowano 2 Października 2008 ale nikt nie zabrania używania mouse_x ze zmiennymi lokalnymi
TeoTN Opublikowano 2 Października 2008 Autor 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".
Tymon Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 Od tego masz event mouse click.
Pieter Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 ustaw w create GML depth = random(-ilestu); i sprawdzaj który depth jest mniejszy temu doda punkty ;]
Tymon Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 No ok, a jak są 2 z tym samym depth?
Pieter Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 to sprawdza czy są te same i losuje następne ;p
Tymon Opublikowano 2 Października 2008 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?
Administratorzy gnysek Opublikowano 2 Października 2008 Administratorzy Opublikowano 2 Października 2008 Jak będziesz losował, to losowy obiekt będzie na wierzchu, to jest bez sensu większego.
Pieter Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 nie, ja mówię, że losować można podczas create obiektów ;p
Tymon Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 A ja mówię, że mogą być 2 obiekty o tym samym depth. I się pytam co wtedy.
Pieter Opublikowano 2 Października 2008 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...
Tymon Opublikowano 2 Października 2008 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?
Marek.S Opublikowano 2 Października 2008 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 }
Harrrry Opublikowano 2 Października 2008 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; }
Tymon Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 No tak, ale potrzebuję "najwyższego" obiektu. =D Dobra, macie zagadkę na noc. Idę spać. =P
Marek.S Opublikowano 2 Października 2008 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.
Tymon Opublikowano 2 Października 2008 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".
Marek.S Opublikowano 2 Października 2008 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? ;)
Danielus Opublikowano 2 Października 2008 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)^^
Pieter Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 to zamiast spamić to podaj poprawną odpowiedź ;D
Marek.S Opublikowano 2 Października 2008 Opublikowano 2 Października 2008 no ale co źle? sprawdzam które obiekty znajdują się w poz myszki i zapisuje id najmniejszego :P
Tymon Opublikowano 2 Października 2008 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
Marek.S Opublikowano 2 Października 2008 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.
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ę