marker Opublikowano 24 Kwietnia 2009 Udostępnij Opublikowano 24 Kwietnia 2009 Mam 2 pytania: zrobiłem obj.1 i obj.2 i próbuję w końcu nie za pomocą klocków, a kodów ustawić tak, aby po kliknięciu na dany obj. była wykonana akcja. Problem jest w tym, że gdy kliknę byle gdzie na roomie mychą, to wykonywana jest akcja, a chciałbym, żeby była wykonywana tylko wtedy, gdy mb_left pressed + mysz jest na obj... Może jeszcze bym sobie poradził,ale obj. jest ruchomy. Drugie pytanie: jak zrobić, aby akcja wykonywana była po najechaniu myszą na obj? Obiekt jest ruchomy. I bardzo proszę nie odsyłać mnie do pomocy GML, gdyż nie mogę tego znaleźć, albo mój angielski nie jest taki cudowny :) jak zwykle, z góry dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TERROR DRONE Opublikowano 24 Kwietnia 2009 Udostępnij Opublikowano 24 Kwietnia 2009 Łapaj: https://gmclan.org/up5355.html W moim katalogu nazwa Mysz.gmk E: Jest to bardzo łatwe przecież... :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 24 Kwietnia 2009 Udostępnij Opublikowano 24 Kwietnia 2009 Metoda podana przez poprzednika jest dziadoska, także się wtrącę :) Funkcja mouse_on(): GML if(mouse_x>=x && mouse_y>=y && mouse_x<x+sprite_width && mouse_y<y+sprite_height){ return 1; }else{ return 0; } Użycie: GML if(mouse_on() && mouse_check_button_pressed(mb_left)) Prosta i szybka metoda, bez niepotrzebnego kiczowatego rozbijania kodu na eventy. Jeśli musisz sprawdzić, czy myszka jest nad kulką (w tym przypadku jest sprawdzane, czy myszka znajduje się w prostokącie) użyj Pitagorasa (point_distance()), jeśli już koniecznie musisz sprawdzić nieregularny kształt to po prostu sprawdzaj GMowym eventem, czy myszka jest nad obiektem, i, jeśli tak, to zmieniaj jakąś zmienną. Bo są sytuacje, kiedy po prostu nie można sobie pozwolić na niepotrzebne rozbicie kodu na kilka eventów - zresztą lepiej mieć wszystko w jednym (+Create/Draw) i tyle. :P Jakby co: [mouse_x/y] to pozycja myszki w roomie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
hudy0070 Opublikowano 25 Kwietnia 2009 Udostępnij Opublikowano 25 Kwietnia 2009 Można jeszcze inaczej, jeżeli mamy jakąś maskę albo sprita GML if ( position_meeting( mouse_x, mouse_y, self ) ) { akcja } ale jeżeli nie ma maski to tylko tak jak napisał Dawidds tyle że za sprite_width/height trzeba podstawiać liczby. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 25 Kwietnia 2009 Udostępnij Opublikowano 25 Kwietnia 2009 Lol, sprite_width/height to wbudowane zmienne w GMa... ;/ Nic nie trzeba podstawiać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
hudy0070 Opublikowano 25 Kwietnia 2009 Udostępnij Opublikowano 25 Kwietnia 2009 Jeżeli nie masz maski to Ci to nic nie da, jeżeli masz powiedzmy nadrawowany kwadracik i żeby sprawdzić czy kursor jest nad nim nie użyjesz sprite_width/height no bo nie masz maski/sprita. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 25 Kwietnia 2009 Udostępnij Opublikowano 25 Kwietnia 2009 Jeżeli nie masz maski to Ci to nic nie da, jeżeli masz powiedzmy nadrawowany kwadracik i żeby sprawdzić czy kursor jest nad nim nie użyjesz sprite_width/height no bo nie masz maski/sprita. To wtedy można stworzyć sobie jakieś własne wartości width i height i za ich pomocą rysować prostokąt oraz wykrywać kliknięcie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
marker Opublikowano 25 Kwietnia 2009 Autor Udostępnij Opublikowano 25 Kwietnia 2009 dobra metoda, kombinuje, z tego co widze, to pomoze. Dam znac, jak cos wywnioskuje zlego :) Dzieki 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ę