uzu13 Opublikowano 15 Stycznia 2011 Udostępnij Opublikowano 15 Stycznia 2011 Witam. Tak jak w temacie, nie wychodzi bieganie. W sumie to mam bieganie ale z shiftem, a mi chodzi o takie ze jak wcisne D, puszcze i zaraz znow szybko wcisne bedzie biegl, jak nie wcisne 2 raz to po prostu idzie. Dzialalo mi to na nowym projekcie a jak przelorzylem do gry to nie dziala :) Prosil bym o nowy kodzik jak mozna. 2 sprawa dotyczy viewa, a mianowicie chodzi mi o taki efekt aby 2 obiekty byly caly czas w viewie a on sam sie pomniejszal i powiekszal ( aby te obiekty nie mogly wyjsc za krawedz ekranu ) czyli jak sa na krawedziach i dalej sie idzie po za nie, to view sie oddala. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 15 Stycznia 2011 Udostępnij Opublikowano 15 Stycznia 2011 Co do pierwszego to zrób sobie jakąś zmienną stan. I przyjmijmy, że jeśli stan=0 to znaczy, że postać stoi, jeśli 1 to idzie, a jak 2 to biegnie. Przy puszczeniu klawisz ustawiamy stan na 0. Przy naciśnięciu: GML if(stan==0) //jeśli stoi { stan=1; //zaczyna iść alarm[0]=30; //i ustawiamy alarm } else if(stan==1 && alarm[0]>0) //jeśli idzie i nacisnęliśmy 2 raz przed końcem alarmu { stan=2; //zaczyna biec } A w step daj poruszanie się zależnie od zmiennej stan. Tylko w alarmie musisz dać cokolwiek, chociażby pusty komentarz, żeby w ogóle się odliczał. Przynajmniej w GM6 tak było. Co do viewa to nie chce mi się teraz, może później. :) EDIT: Ok, do drugiego. Po pierwsze wszystkim obiektom, które mają być widoczne w view tworzysz wspólnego parenta. Nazywjmy go na przykład obj_parent. W End Step jakiegoś obiektu co ma jeden egzemplarz i służy do takich generalnych obliczeń jak właśnie to: GML var xmin; var ymin; var xmax; var ymax; xmin=view_xview[0]; ymin=view_yview[0]; xmax=view_xview[0]+view_wview[0]; ymax=view_yview[0]+view_hview[0]; with(obj_parent) { xmin=min(xmin,x); ymin=min(ymin,y); xmax=max(xmax,x); ymax=max(ymax,y); } view_xview[0]=(xmin)/2; view_yview[0]=(ymin)/2; view_wview[0]=(xmax-xmin); view_hview[0]=(ymax-ymin); Spróbuj, może zadziała. Nie sprawdzałem, bo bym musiał na Windowsa się przełączać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 15 Stycznia 2011 Autor Udostępnij Opublikowano 15 Stycznia 2011 Nie o taki efekt mi chodziło, mam chodzenie na wsad, i teraz jak wcisne "a/d" to on sobie idzie, chce zrobic cos takiego ze jak wcisne "a" puszcze i jeszcze raz szybko wcisne "a" , to biegnie, z "d" to samo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 15 Stycznia 2011 Udostępnij Opublikowano 15 Stycznia 2011 To sobie po prostu zrób oddzielną zmienną stan dla każdego klawisza WSAD. To nie problem przerobić to co ci dałem. I dałem ci tego viewa w poprzednim poście. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 16 Stycznia 2011 Autor Udostępnij Opublikowano 16 Stycznia 2011 Poradziłem sobie już z bieganiem, co do viewa, to jakoś dziwnie to wszystko "działa" bo tak jakby spłaszcza mi cały obraz gdy dojdę do krawędzi, lecz jak od niej wrócę to obraz pozostaje spłaszczony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 16 Stycznia 2011 Udostępnij Opublikowano 16 Stycznia 2011 Ach, fakt. Nie przewidziałem tego. Spróbuj tego: GML stosunek=view_wview[0]/view_hview[0]; var xmin; var ymin; var xmax; var ymax; xmin=view_xview[0]; ymin=view_yview[0]; xmax=view_xview[0]+view_wview[0]; ymax=view_yview[0]+view_hview[0]; with(obj_parent) { xmin=min(xmin,x); ymin=min(ymin,y); xmax=max(xmax,x); ymax=max(ymax,y); } if((xmax-xmin)/(ymax-ymin) > stosunek) { view_xview[0]=(xmin)/2; view_yview[0]=(ymin)/2; view_wview[0]=(xmax-xmin); view_hview[0]=view_wview[0]*(1/stosunek); } else { view_xview[0]=(xmin)/2; view_yview[0]=(ymin)/2; view_wview[0]=view_hview[0]*stosunek; view_hview[0]=(ymax-ymin); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 16 Stycznia 2011 Autor Udostępnij Opublikowano 16 Stycznia 2011 Już jest fajny efekt, ale dalej jak się odejdzie od krawędzi to obraz zostaje taki jak się odsuną. A chcę aby cofną się do któregoś momentu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 16 Stycznia 2011 Udostępnij Opublikowano 16 Stycznia 2011 To spróbuj coś z kolizją z prostokątem, musisz go dostosować do vieva i jak dojdzie do kolizji to przybliżasz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 17 Stycznia 2011 Autor Udostępnij Opublikowano 17 Stycznia 2011 A dało by się jakoś przerobić ten kod, aby powiększał ? Bo w tym momencie oddala i jakby dodać pomniejszanie to już bym sobie raczej poradził. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 17 Stycznia 2011 Udostępnij Opublikowano 17 Stycznia 2011 Odwróć znaki czyli mnóż zamiast dzielić, dodawaj żeby odejmować itd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 17 Stycznia 2011 Udostępnij Opublikowano 17 Stycznia 2011 View ma śledzić jakąś postać? Jeśli tak to zamień początkowy fragment mojego kodu na coś takiego: GML stosunek=view_wview[0]/view_hview[0]; var xmin; var ymin; var xmax; var ymax; xmin=postac.x-320; ymin=postac.y-240; xmax=postac.x+320; ymax=postac.y+240; Resztę kodu, pozostaw jak jak było. Tylko 4 linijki się zmieniły. I nie śłuchaj kt1117. Bredzi, bo nie rozumie o czego oczekujesz. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 18 Stycznia 2011 Autor Udostępnij Opublikowano 18 Stycznia 2011 O O O już prawie! Efekt jest taki jaki być powinien, ale brakuje jeszcze czegoś takiego, jakby granic oddalenia- bo jak mam rooma 1000x1000 i wyjdę po za niego to mi pokazuje to co jest za nim, a chciałbym aby do granic rooma się oddalało dalej nie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 18 Stycznia 2011 Udostępnij Opublikowano 18 Stycznia 2011 Zamień jeszcze te cztery linijki na coś takiego: GML xmin=max(postac.x-320,0); ymin=max(postac.y-240,0); xmax=min(postac.x+320,room_width); ymax=min(postac.y+240,room_height); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 18 Stycznia 2011 Autor Udostępnij Opublikowano 18 Stycznia 2011 Słuchaj prawie prawie, ale i TY chyba nie do końca wiesz o co chodzi ;p Mam 2 graczy i oni muszą znajdować się w viewie ;p Najlepiej jak podam przykład :P O taki efekt mi chodzi jak użyty TU Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 19 Stycznia 2011 Udostępnij Opublikowano 19 Stycznia 2011 Spróbuj tego: GML stosunek=view_wview[0]/view_hview[0]; var xmin; var ymin; var xmax; var ymax; xmin=max( 0 , min(hero1.x,hero2.x)-320 ); ymin=max( 0 , min(hero1.y,hero2.y)-240 ); xmax=min( room_width , max(hero1.x,hero2.x)+320 ); ymax=min( room_height , max(hero1.y,hero2.y)+240 ); if((xmax-xmin)/(ymax-ymin) > stosunek) { view_xview[0]=(xmin); view_yview[0]=(ymin); view_wview[0]=(xmax-xmin); view_hview[0]=view_wview[0]*(1/stosunek); } else { view_xview[0]=(xmin); view_yview[0]=(ymin); view_wview[0]=view_hview[0]*stosunek; view_hview[0]=(ymax-ymin); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 19 Stycznia 2011 Autor Udostępnij Opublikowano 19 Stycznia 2011 Jest ładnie do momentu gdy obiekty player'y się do siebie zbliżą, wtedy rozciąga mi wysokośc ekranu, a tak poza tym jest już ładnie jak obiekty się oddalą to nie rozciąga ( wysokości , szerokość ładnie tam już działa ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 19 Stycznia 2011 Udostępnij Opublikowano 19 Stycznia 2011 Rób screenshota kiedy jest źle i dawaj. Ja to piszę na ślepo bez testowania. Dobrze by było jakbym to widział. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 19 Stycznia 2011 Autor Udostępnij Opublikowano 19 Stycznia 2011 SSy TU Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 19 Stycznia 2011 Udostępnij Opublikowano 19 Stycznia 2011 Po pierwsze to jeśli z PrintScreenem naciśniesz Alt to możesz zrobić screen samego aktywnego okna, bez pulpitu naokoło. A wracając do tematu to musiałem się gdzieś pomylić, już spoglądam... ...no i już mam. Ale jestem głupi. Zamień miejscami 2 ostatnie instrukcje: GML (...) view_hview[0]=(ymax-ymin); view_wview[0]=view_hview[0]*stosunek; } Nie wiem czy powodowało twoje błędy, ale z całą pewnością ich odwrotne kolejność mogła powodować różne dziwolągi. Więc pewnie również te twoje problemy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 19 Stycznia 2011 Autor Udostępnij Opublikowano 19 Stycznia 2011 DZIAŁA!!!! Dzięki bardzo za fatygę Platyna naprawdę :thumbsup: JUPI ^^ 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ę