gol350 Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 Jak zrobić ,żeby objekt poruszał się w kierunku odciśnięcia myszy tzn. jak odcisnę myszkę po prawej stronie od objektu, to objekt leci w prawo do ściany i na ścianie się zatrzymuje. Jest jeden warunek- muszę najpierw nacisnąć myszką na objekt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 Odciśnięcie myszy - bierzesz mysz, białą kartkę. Maczasz mysz w atramencie a następnie przyciskasz mocno do kartki. Bo odklejeniu myszy mamy już odcisk myszy :) Czas na poruszanie obiektu w kierunku odciśnięcia myszy. Musisz gdzieś zapisać pozycję x i y odcisku myszy. Następnie przy pomocy funkcji np. mp_potential step poruszasz obiektem w kierunku odciśnięcia. Myślę że pomoże ci to :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Farkraj Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 mógłbyś to napisać trochę wyraźniej bo jakoś zrozumieć dokładnie nie moge o co biega z tymi odciskami :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 hihi, najprościej: GML Create: xx = x; yy = y; Step: if ( mouse_check_button_released( mb_left )) { xx = mouse_x yy = mouse_y } if ( distance_to_point( xx , yy ) < 2 ) mp_potential_step( xx , yy , 3 , true ); End Game: show_message( 'gml wcale nie gryzie;)' ) ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 GML //create: xx=x yy=y //global left mouse released: xx=mouse_x yy=mouse_y //step: mp_potential_step(xx,yy,5,false) Trochę pomyslone, bo nie wiem, jak dokładnie chcesz, aby to wyglądało. Ogólnie to napisz więcej, to się pomyśli. Marku, za szybko ;/ (ale lepiej) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 lenin, nie masz ograniczenia, czegoś w stylu jeśli dojdę to już dalej nie idę :P obiekt będzie robił takie kółka, albo dziwnie drgał :P i tak jestem fajniejszy '=P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 27 Listopada 2008 Autor Udostępnij Opublikowano 27 Listopada 2008 hihi, najprościej:GMLCreate: xx = x; yy = y; Step: if ( mouse_check_button_released( mb_left )) { xx = mouse_x yy = mouse_y } if ( distance_to_point( xx , yy ) < 2 ) mp_potential_step( xx , yy , 3 , true ); End Game: show_message( 'gml wcale nie gryzie;)' ) ;) tu mi wyskakuje taki błąd: FATAL ERROR in action number 1 of Create Event for object mon_4: COMPILATION ERROR in code action Error in code at line 2: xx = x; at position 2: Assignment operator expected. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 hmm. smutne. napisz to jeszcze raz, ale ręcznie. Może wstawiły się jakieś ukryte znaki... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 27 Listopada 2008 Autor Udostępnij Opublikowano 27 Listopada 2008 hmm. smutne. napisz to jeszcze raz, ale ręcznie. Może wstawiły się jakieś ukryte znaki... A trzeba za x coś wstawić czy nie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 nie. hm nie wiem co jest. zaświeć tym projektem to Ci powiem ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 27 Listopada 2008 Autor Udostępnij Opublikowano 27 Listopada 2008 nie. hm nie wiem co jest. zaświeć tym projektem to Ci powiem ;) Chodzi mi o coś takiego jak w Blockoban Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 27 Listopada 2008 Udostępnij Opublikowano 27 Listopada 2008 ale ja nie wiem co to jest. może jakaś stała/grafika/dzwięk/obiekt nazywają się xx? bo kod jest poprawny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 27 Listopada 2008 Administratorzy Udostępnij Opublikowano 27 Listopada 2008 COMPILATION ERROR in code action Error in code at line 2: xx = x; at position 2: Assignment operator expected. A co jest w linii 1 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 28 Listopada 2008 Udostępnij Opublikowano 28 Listopada 2008 Ha, pewnie Create: :lol2: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 28 Listopada 2008 Autor Udostępnij Opublikowano 28 Listopada 2008 ale ja nie wiem co to jest. może jakaś stała/grafika/dzwięk/obiekt nazywają się xx? bo kod jest poprawny. Ale to mi nie leci do ściany ,tylko troche się przesuwa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 28 Listopada 2008 Udostępnij Opublikowano 28 Listopada 2008 To masz w końcu ten błąd czy nie? I co mamy rozumiec przez: Ale to mi nie leci do ściany ,tylko troche się przesuwa? GML mp_potential_step( xx , yy , 3 , true ); Zamiast '3' wstaw sobie 20, jeżeli o to Ci chodzi. Jest to prędkośc poruszania się obiektu do danego punktu, w tym przypadku xx,yy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 28 Listopada 2008 Autor Udostępnij Opublikowano 28 Listopada 2008 To masz w końcu ten błąd czy nie? I co mamy rozumiec przez: ? Zamiast '3' wstaw sobie 20, jeżeli o to Ci chodzi. Jest to prędkośc poruszania się obiektu do danego punktu, w tym przypadku xx,yy Jak napisze GML to mam błąd ,a jak nie to mi się troche poruszy i staje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 28 Listopada 2008 Udostępnij Opublikowano 28 Listopada 2008 Jak napisze GML to mam błąd lol... Zrób połączenie mojego kodu i Marka tzn: GML //Create: xx = x; yy = y; //global left mouse released: (Ten event znajdziesz w mouse->global->mouse left released) xx = mouse_x yy = mouse_y //step: if ( distance_to_point( xx , yy ) < 2 ) mp_potential_step( xx , yy , 3 , true ); I tyle. Aby zobaczy efekt, kliknij w grze prawym przyciskiem myszy gdziekolwiek w roomie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 28 Listopada 2008 Autor Udostępnij Opublikowano 28 Listopada 2008 lol... Zrób połączenie mojego kodu i Marka tzn: GML//Create: xx = x; yy = y; //global left mouse released: (Ten event znajdziesz w mouse->global->mouse left released) xx = mouse_x yy = mouse_y //step: if ( distance_to_point( xx , yy ) < 2 ) mp_potential_step( xx , yy , 3 , true ); I tyle. Aby zobaczy efekt, kliknij w grze prawym przyciskiem myszy gdziekolwiek w roomie To mi się objekt kręci we kółko, a mi chodzi o to, żeby szedł prosto do ściany. Mimek może ty wiesz jak to zrobić, bo z tamtym co mi zrobiłeś to nawet na GM-ie 7 PRO nie działa. Bo kupiłem ,to wiem. Serdecznie proszę o korzystanie z funkcji edycji posta zamiast pisania drugiego z rzędu. Woock Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 To już nawet w przykładach nie umiesz szukać... KLIK <-- <_< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 GML zamiast mp_potential_step użyj move_towards_point( xx , yy , 3 ); Ogólnie to powinno wyglądać mniej więcej tak: GML (create) xx = x; yy = y; GML (step) if ( mouse_check_button_released( mb_left )) { xx = mouse_x yy = mouse_y } if ( point_distance( x , y , xx , yy ) > 2 ) move_towards_point( xx , yy , 3 ); else speed = 0 btw. nikt nie zauważył, że w tym step powinien być znak większości a nie mniejszości =P E2: dobra poprawiłem resztę tego kodu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 GMLzamiast mp_potential_step użyj move_towards_point( xx , yy , 3 ); Ogólnie to powinno wyglądać mniej więcej tak:GML (create)xx = x; yy = y; GML (step)if ( mouse_check_button_released( mb_left )) { xx = mouse_x yy = mouse_y } if ( point_distance( x , y , xx , yy ) > 2 ) move_towards_point( xx , yy , 3 ); else speed = 0 btw. nikt nie zauważył, że w tym step powinien być znak większości a nie mniejszości =P E2: dobra poprawiłem resztę tego kodu Wtedy objekt porusza się do punktu wciśnięcia myszy. Mi zależy na tym, żeby poruszał się do ściany. Nie wiem jak to dokładnie opisać. Jakby ktoś miał czas to niech sobie wejdzie w GOOGLE i napisze BLOCKOBAN(to zajmie dosłownie minutkę). Tam na pierwszym poziomie wykonuje się takie poruszanie klockami. Klocki zawsze lecą do ściany w kierunku odciśnięcia myszy, ale najpierw musisz nacisnąć na klocek i wybrać kierunek myszką. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 Może tak? GML //create xx = x; yy = y; //step if ( mouse_check_button_released( mb_left )) { xx = mouse_x yy = mouse_y } if ( point_distance( x , y , xx , yy ) > 2 ) motion_set( point_direction(x,y,xx,yy),5 ); else speed = 0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 W tym kodzie chyba musi być move_contact_all. Tylko nie wiem jak z kierunkiem , bo ja chcę ,żeby to leciało w różne kierunki w zależności od kierunku odciśnięcia myszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 Spróbuj teraz: GML //create newdir=false; xx = x; yy = y; //step if(newdir) { xx = mouse_x yy = mouse_y newdir=false; } if ( mouse_check_button(mb_left) ) { newdir=true; motion_set( point_direction(x,y,xx,yy),5 ); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 Spróbuj teraz: GML//create newdir=false; xx = x; yy = y; //step if(newdir) { xx = mouse_x yy = mouse_y newdir=false; } if ( mouse_check_button(mb_left) ) { newdir=true; motion_set( point_direction(x,y,xx,yy),5 ); } Znowu ale. Porusza się dobrze ,tylko ,że porusza się do ściany i leci na około ścian(kwadrat ze ścian a objekt w środku) odbija się od ściany i leci dalej ,a poza tym jeśli nie nacisnę na objekt tylko na puste pole to też się porusza, a to ma się poruszać tylko po uprzednim naciśnięciu na objekt jeśli odcisnę myszkę poza objektem . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 A co jest w linii 1 ? Jest w pierwszej linni "GML" -bo teraz wpadłem na to ,że nie pisze się tego no nie, czy się pisze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 GML //create selected=0; newdir=false; xx = x; yy = y; //step if (point_distance(mouse_x,mouse_y,x,y)<=8) { if(mouse_check_button(mb_right)) { selected=1; } } if(point_distance(mouse_x,mouse_y,x,y)>8) { if(mouse_check_button(mb_right)) { selected=0; } } if(selected==1) { if(newdir) { xx = mouse_x yy = mouse_y newdir=false; } if ( mouse_check_button(mb_left) ) { newdir=true; motion_set( point_direction(x,y,xx,yy),5 ); } } I ustaw originy sprite'a na center. PS: Chciałem to zrobić na collision_point(mouse_x,mouse_y,self,0,0), ale mi nie działało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 29 Listopada 2008 Autor Udostępnij Opublikowano 29 Listopada 2008 GML//create selected=0; newdir=false; xx = x; yy = y; //step if (point_distance(mouse_x,mouse_y,x,y)<=8) { if(mouse_check_button(mb_right)) { selected=1; } } if(point_distance(mouse_x,mouse_y,x,y)>8) { if(mouse_check_button(mb_right)) { selected=0; } } if(selected==1) { if(newdir) { xx = mouse_x yy = mouse_y newdir=false; } if ( mouse_check_button(mb_left) ) { newdir=true; motion_set( point_direction(x,y,xx,yy),5 ); } } I ustaw originy sprite'a na center. PS: Chciałem to zrobić na collision_point(mouse_x,mouse_y,self,0,0), ale mi nie działało. Przyciskam lewy i prawy przycisk myszki i nic się nie dzieje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 29 Listopada 2008 Udostępnij Opublikowano 29 Listopada 2008 Kliknij prawym przyciskiem na obiekcie, a następnie lewym, żeby się poruszył. kiedy klikniesz PPM poza obiektem, przestanie być zaznaczony. Jeśli obiekt jest większy niż 16x16 to w tym miejscu: if (point_distance(mouse_x,mouse_y,x,y)<=8) if(point_distance(mouse_x,mouse_y,x,y)>8) Zamiast ósemek wstaw połowę długości/szerokości obiektu (zakładając, że jest kwadratowy) 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ę