Milord Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 Witam wszystkich Chciałbym zrobić napis,który pojawi się przez moment za nim rozpocznę grę coś jak Stage 1-4 ( na środku ekranu ) view in room mam ustawiony na 800x500 potem w scenerii drugiej napis Stage 2-4 itd i za np parę sekund zniknie.. Ale jak się pojawi na planszy w scenerii ten napis,to dopóki nie zniknie to chciałbym żeby bohater nie mógł wykonać ruchu. Rozumiem,że mam stworzyć to w pustym obiekcie.. Mam Game maker studio pro Z góry dziękuje za jakąkolwiek pomoc... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 Użyj do tego alarmów. W create obiektu napisu zrób GML alarm[0]=czas; //czas wyliczasz ze wzoru room_speed*sekundy</span></span> w alarmie 0(evencie) robisz GML instance_destroy(); a w graczu sprawdzasz np, przed wykonaniem ruchu GML if(oNapis.alarm[0]==-1) { //kod poruszania }; To rozwiązanie co do obiektów. A możesz po prostu w jakimś obiekcie, np. graczu dać w draw draw_text, albo draw_sprite i rysować ten napis. Wtedy podobnie, w create obiektu dajesz jakąś zmienna np. GML draw_napis=true; w alarm 0 GML draw_napis=false; A w draw GML if(draw_napis) { //kod rysowania }; Lub zrobic własny alarm/timer i wtedy rysowanie robisz if!(moj_alaram-=1), a w poruszaniu GML if(moj_alarm==-1) { //kod poruszania }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 Dziękuje bardzo za pomoc;) już się za to biorę Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 No dobra stworzyłem sobie nowy obiekt.Nazwałem go obj_napis_plansza w create dałem GML alarm[0]=room_speed*2 w Alarm 0 mam GML instance_destroy(); a w draw mam GML draw_set_font(fn_plansza); draw_set_color(c_blue); draw_text("STAGE 1-4" , view_xview + view_wview / 2 , view_yview + view_hview / 2 ); Wyświetla mi cyfrę 365 zamiast napisu Stage 1-4 nie wiem o co chodzi dziwna sytuacja:/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 GML draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 1-4"); Tekst na końcu, najpierw x i y :) i teraz w poruszaniu robisz: GML if(instance_number(obj_opis_plansz)>0) { //kod poruszania } Bo teraz dopiero pomyślałem, że wprowadziłem Cię w błąd przez moje roztargnienie. Wysypało by Ci error jakby obiekt znikł a Ty byś próbował się odwołać do jego alarmu. Ten kod sprawdza ilość obiektów z napisem i jeżeli jest jakiś(ich liczba jest większa niż 0) to wykonuje kod poruszania ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 Dzięki MaxGaming;) miałem pisać,że udało mi się to rozwiązać;) jeszcze raz dziękuje;) działa idealnie;) A powiedz mi na podstawie tego kody,żeby nie wklejać ten obj_napisz_plansza do każdej scenerii i nie zmieniać napisu na 2-4,3-4,4-4 czy można wpisać jakiś warunek,skrypt,który by na podstawie nazwy pokojów załóżmy 4 pokoje nazywają się plansza1,plansza2,plansza3,plansza4 wyświetlał tak jak teraz napis kolejno stage 1-4 stage 2-4 stage 3-4 i stage 4-4 ?? Bo teraz to trzeba za każdym razem taki sam obiekt tworzyć w każdym pokoju tylko zmieniać mu tekst na odpowiedni,który chcemy żeby się wyświetlił. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 Oczywiście :) Najprościej użyć switch i np. sprawdzać room: GML switch(room) { case rLevel11: draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 1-1"); break; case rLevel12: draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 1-2"); break; case rLevel21: draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 2-1"); break; }; Dajesz to w draw oczywiście. Można to jeszcze zrobić na wiele innych sposobów - jak wszystko - ale myślę, że ten będzie najłatwiejszy :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 GMLdraw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 1-4"); Tekst na końcu, najpierw x i y :) i teraz w poruszaniu robisz:GMLif(instance_number(obj_opis_plansz)>0) { //kod poruszania } Bo teraz dopiero pomyślałem, że wprowadziłem Cię w błąd przez moje roztargnienie. Wysypało by Ci error jakby obiekt znikł a Ty byś próbował się odwołać do jego alarmu. Ten kod sprawdza ilość obiektów z napisem i jeżeli jest jakiś(ich liczba jest większa niż 0) to wykonuje kod poruszania ;) MaxGaming mała poprawka w stepie Bohatera wstawiam tak GML if(instance_number(obj_opis_plansz)=0)// zamiast > ,bo tak,to blokowało cały czas ruch bohatera,tak jakby chodził w miejscu { //kod poruszania } Zastanawia mnie jedna rzecz...bo fajnie już to wygląda..teraz np chcę użyć image_index i na moment,kiedy bohater stoi chciałbym zmienić sprita,by stał całkowicie w miejscu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 MaxGaming mała poprawka w stepie Bohatera wstawiam tak GML if(instance_number(obj_opis_plansz)=0)// zamiast > ,bo tak,to blokowało cały czas ruch bohatera,tak jakby chodził w miejscu { //kod poruszania } Zastanawia mnie jedna rzecz...bo fajnie już to wygląda..teraz np chcę użyć image_index i na moment,kiedy bohater stoi chciałbym zmienić sprita,by stał całkowicie w miejscu. Racja, znów pomyłka... Przepraszam, zmęczony jestem bo od rana praktycznie siedzę nad swoim projektem :/ Fajnie, że nie przepisujesz w ciemno tylko próbujesz wszystko samemu ogarnąć :) @e: GML image_speed=0; Np daj to na początek kodu w porsuzania(przed kodem poruszania właściwie), a przy poruszaniu(nie wiem dokładnie jak to u Ciebie wygląda) daj z powrotem normalny image_speed(domyślnie =1). Albo uzależnij to od speed itp., zależy jak wygląda u Ciebie poruszanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 Staram się Maxgaming;) czasem uda mi się wyłapać mały błąd..W porządku i tak dziękuje za pomoc,bo dużo mi pomogłeś.. w draw dałem GML draw_set_font(fn_plansza); draw_set_color(c_blue); switch(room) { case roo_world1_1://nazwa pokoju draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 1-5"); break; case roo_world1_2://nazwa pokoju draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 2-5"); break; case roo_world2_1://nazwa pokoju draw_text(view_xview + view_wview / 2 , view_yview + view_hview / 2 , "STAGE 3-5"); break; }; na pierwszej planszy ładnie się napis wyświetla,ale już na drugiej nie wyświetla się..no nie wiem..hmmm..persistent też nic nie daje czy to zaznaczone czy nie;) co do bohatera..hmmm dając w stepie przed kodem chodzenia gracza image_speed=0; nie do końca rozwiązuje problem ok chwilowo gracz się zatrzymuje,ale potem dziwnie się zachowuje;) niech już tu jest jak jest;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 na pierwszej planszy ładnie się napis wyświetla,ale już na drugiej nie wyświetla się..no nie wiem..hmmm..persistent też nic nie daje czy to zaznaczone czy nie;) Zrobiłem symulację u mnie, czy znów nie jakiś babol, ale wszystko śmiga. Może obiekt napis znajduję się tylko w pierwszym pokoju? Pamiętaj że musisz go postawić w każdym pokoju(oczywiście w menu czy coś nie musisz, tylko tam gdzie ma się wyświetlać). Persistant nie powinno tu niczego zmienić. co do bohatera..hmmm dając w stepie przed kodem chodzenia gracza image_speed=0; nie do końca rozwiązuje problem ok chwilowo gracz się zatrzymuje,ale potem dziwnie się zachowuje;) niech już tu jest jak jest;) Daj kod poruszania, bo może np. masz na speed, albo jakąś inną metodą i ciężko w ciemno Ci powiedzieć co zrobić :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 Zrobiłem symulację u mnie, czy znów nie jakiś babol, ale wszystko śmiga. Może obiekt napis znajduję się tylko w pierwszym pokoju? Pamiętaj że musisz go postawić w każdym pokoju(oczywiście w menu czy coś nie musisz, tylko tam gdzie ma się wyświetlać). Persistant nie powinno tu niczego zmienić. Daj kod poruszania, bo może np. masz na speed, albo jakąś inną metodą i ciężko w ciemno Ci powiedzieć co zrobić :) hehe racja nie mam w drugim pokoju tego obiektu;) już go dodaje,raczej więcej niż pewne,że będzie działało;) dziękuje;) zaraz poszukam u siebie kodu na poruszanie się.. Zrobiłem symulację u mnie, czy znów nie jakiś babol, ale wszystko śmiga. Może obiekt napis znajduję się tylko w pierwszym pokoju? Pamiętaj że musisz go postawić w każdym pokoju(oczywiście w menu czy coś nie musisz, tylko tam gdzie ma się wyświetlać). Persistant nie powinno tu niczego zmienić. Daj kod poruszania, bo może np. masz na speed, albo jakąś inną metodą i ciężko w ciemno Ci powiedzieć co zrobić :) vspd ;) taką metodą mam;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 Samo vspeed? no to możesz np.: GML if(vspeed==0) { image_speed=0; }else{ image_speed=1; }; Żeby Ci dać pewne rozwiązanie musiałbym trochę więcej wiedzieć :P Najlepiej jakbym widział kod poruszania ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 tak mam tylko vspd i hspd ;) no wiem...w stepie mam to jeśli chodzi o ruch bohatera;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 tak mam tylko vspd i hspd ;) no wiem...w stepie mam to jeśli chodzi o ruch bohatera;) GML if(vspeed>0 ^^ hspeed>0) { image_speed=1; }else{ image_speed=0; }; Jak mówiłem dokładniej to cały kod musiałbym zobaczyć, ale wydaje mi się, że to może być rozwiązanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Milord Opublikowano 12 Października 2015 Autor Udostępnij Opublikowano 12 Października 2015 wiem wiem dużo tego musiałbym wysłać... zobacz tak już lepiej działa GML if(vspd>0 ^^ hspd>0) { image_speed=1; }else{ image_speed=0; }; tylko,że jak idę w lewo jest ok,a jak w prawo,to sprita wygląda jakby cały czas krok robił;) aj nie jest to już takie istotne;) i Tak Ci bardzo dziękuje za pomoc;) Ps.Zerknąłbyś jeszcze do moich dwóch tematów? bo tam mam największy problem;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 12 Października 2015 Udostępnij Opublikowano 12 Października 2015 GML if(vspd==0 && hspd==0) { image_speed=0; }else{ image_speed=1; }; Znów moje przeoczenie xD Dzisiaj już chyba nie myślę :/ Można też tamto poprawić, ale wyjdzie dłużej: GML if(vspd>0 ^^ hspd>0 ^^ vspd<0 ^^ hspd<0) { image_speed=1; }else{ image_speed=0; }; Więc lepiej to pierwsze. 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ę