Raik Opublikowano 10 Lipca 2014 Udostępnij Opublikowano 10 Lipca 2014 Siemanko, mam problem z ograniczeniem prędkości ruchu w tym skrypcie bo wszystko się dzieje natychmiast, średnio zrozumiałem timery a pewnie tutaj by się przydały. Liczę na pomoc :D. GML if(mouse_check_button_released(mb_right)&&targeted) { xx=mouse_x; yy=mouse_y; while(distance_to_point(xx,yy)>32) { mp_potential_step(xx,yy,v,false); } } skrypt ma po prostu sprawić że obiekt pójdzie do danego punktu omijając przeszkody co robi (gdy pozbędę się while a w stawie if i klikam myszką jak powalony XD) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 10 Lipca 2014 Udostępnij Opublikowano 10 Lipca 2014 Pozbądź się while i wstaw to do eventu Step. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szmalu Opublikowano 10 Lipca 2014 Udostępnij Opublikowano 10 Lipca 2014 Nie, wywal część z while i potential_step poza klamry ifa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 10 Lipca 2014 Udostępnij Opublikowano 10 Lipca 2014 Zależy, co chce zrobić: 1. ma poruszać się tylko, gdy kliknięty jest RMB: GML //Event Step if(mouse_check_button(mb_right)&&targeted) { xx=mouse_x; yy=mouse_y; if(distance_to_point(xx,yy)>32) mp_potential_step(xx,yy,v,false); } 2. kliknięcie ma tylko wybierać cel, do którego obiekt ma się dostać, sam obiekt ma cały czas się poruszać, dopóki nie dotrze do celu: GML //Global RMB button released if targeted { xx=mouse_x; yy=mouse_y; } GML //Event Step if(distance_to_point(xx,yy)>32) mp_potential_step(xx,yy,v,false) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 10 Lipca 2014 Autor Udostępnij Opublikowano 10 Lipca 2014 Miał się poruszać do momentu aż osiągnie cel od wciśnięcia rpm, dziękuje teraz działa :D. W sumie debil jestem że while dałem w drawie i pomyślałem sobie że tam jakieś przerwy będą XD Dzięki :) W sumie to ogólnie debil jestem XD EDIT: Pomyślałem że popytam tu o wszystkie głupostki żeby forum nie zaśmiecać, a więc : Teraz to w sumie mam nowy problem, mam ten kod w evencie na puszczenie prawego przycisku myszki, partia po else działa, warunek z shiftem nie, jakieś pomysły :D ? GML if(keyboard_check_pressed(vk_shift))targeted=true; else { with(all){targeted=false}; targeted=true; } EDIT2: Nie ważne, nie wiedziałem że pressed dotyczy samej akcji wciśnięcia xd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 Siemanko, kolejne pytanie :D, najpierw kod,pewnie coś zwaliłem z alarmem: GML if(mine_obj!=noone&&distance_to_object(mine_obj)<11) { if(alarm[0]==-1) { mine_obj.dest_time=mine_obj.dest_time-mine_str; instance_create(mine_obj.x,mine_obj.y,par_mining); alarm[0]=(mine_v+1)*room_speed; } } Skrypt ma powtarzać po prostu akcje co 6 sekund i tyle, zrobi się to raz i potem nie powtarza, jakieś pomysły co jest nie tak ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 mialo by dzialac. sprawdz if(mine_obj!=noone&&distance_to_object(mine_obj)<11) jesli sie vykonuje true albo zle ustawiasz czas alarmu v alarm[0]=(mine_v+1)*room_speed; jesli wogule wytworzy sie instancja, chocby na 1 cykl(tego okiem niewidac to sproboj debugera) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 Instancja się tworzy, mine_v jest ustawione na 5. Cały skrypt się wykonuje bez alarmów tzn: GML if(mine_obj!=noone&&distance_to_object(mine_obj)<11) { mine_obj.dest_time=mine_obj.dest_time-mine_str; instance_create(mine_obj.x,mine_obj.y,par_mining); } Tak działa, tylko że super szybko Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 a co jest w alarmu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 W alarmie nic nie ma, chciałem po prostu go wykorzystać jako odstęp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 ok ale existuje(istnieje) jako event, chociazby pusty? bez tego niebedzie robic co ma Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 Domyśliłem się już po prostu alarm sam nie osiągał z siebie -1, tzn sam sobie w tle nie działał jak myślałem i musiałem w alarm 0 dać żeby alarm[0]=-1. Teraz działa, dziękuje za pomoc :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 Alarm z reguły uaktywnia się tylko wtedy, gdy jest równy -1, więc nie ma potrzeby sprawdzania, czy alarm[0]=-1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 Musi istnieć cokolwiek w evencie alarmu żeby się odliczał! Wstaw tam chociaż komentarz, bo inaczej alarm nie ruszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 Właśnie tak zrobiłem i działa, myślałem że nic nie musi tam być :D. Mam kolejne pytanie, na temat draw. Mam skrypt który na podstawie tego co mam na mapie rysuje mi bzdety (jak krawędzie itp.) i gdy mam za dużo tych elementów to gra oczywiście zwalnia bo tyle tego wszystkiego na raz w tym drawie do zrobienia. Moje pytanie wygląda tak, czy da się np. wywołać raz tego drawa i gdy np chce go odświeżyć, a w innych przypadkach nie ? Bo jak w drawie daje warunek by nie rysowało cały czas to oczywiście elementy po prostu znikają. W sumie poradziłem sobie w taki sposób: EDIT: GML if(x>Viewfollow.x-360&&x<Viewfollow.x+360&&y>Viewfollow.y-280&&y<Viewfollow.y+280) { Rysuj_Klocek(B_R,B_G_R,B_K,Obsydian,Sciana); } Gdzie viewfollow to obiekt który chodzi za viewem ciekawi mnie tylko czy jest jakiś lepszy sposób :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 Możesz stworzyć surface, narysować wszystko na nim i go rysować. Powinno bardzo przyśpieszyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raik Opublikowano 12 Lipca 2014 Autor Udostępnij Opublikowano 12 Lipca 2014 Poczytam o tym, dzięki. To jest jakiś plan :D @Down: Dzięki, tym też się pobawie :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 12 Lipca 2014 Udostępnij Opublikowano 12 Lipca 2014 1, mozesz sprobowac z surface by niebylo trzeba rysowac kazdy cykl kazdy object. bo co sie niezmienia to moze byc na surface 2, wyjotkowo mozna by uzyc set_automatic_draw(value) Indicates whether to automatically redraw the room (true, default) or not (false). screen_redraw() Redraws the room by calling all draw events. screen_refresh() Refreshes the screen using the current room image (not performing drawing events). pozwolic redraw tylko co x cykli. ale jesli to jest dobry pomysl zalezy od animacji gry 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ę