DarkLiquidus Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 Witam! Robię grę strategiczną. Ma być to taki najzwyklejszy RTS. Jak dotąd zrobiłem menu gry :D. Chciałbym się dowiedzieć jak zrobić coś takiego, że po naciśnięciu np. zamku, pojawi mi się interfejs(chyba będę go musiał sam narysować), a w tym interfejsie będzie widniała ikonka np. jakiegoś żołnierza. Po jej naciśnięciu tak jak w każdej strategii ma się pojawić druga ikonka w innym miejscu, która będzie pokazywała postęp budowy danej jednostki. W tym właśnie tkwi problem. Nie mam pomysłu jak zrobić tą animację np. napełniającego się paska(chodzi o postęp budowy). Proszę o pomoc! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 Link. Zrób analogicznie do tego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 obj_zamek: mouse_left_pressed: GML instance_create(x,y,interfejs_zamek) interfejs_zamek:create: GML instance_create(x+10,y+10,zolnierz_zamek) zolnierz_zamek:mouse_left_pressed: GML instance_create(x,y,budowanie_jednostki_zamek) budowanie_jednostki_zamek: GML //create czas_teraz=0 czas_wymagany=150 alarm[0]=1 //alarm0 czas_teraz+=1 alarm[0]=1*room_speed //step if czas_teraz=czas_wymagany { instance_create(x,y,zolniez_zrobiony_zamek) instance_destroy() } //draw draw_healthbar(x,y,x+50,y+5,czas_teraz,c_red,c_black,c_blue,czas_wymagany,true,true) ufff ;D E:poprawiłem step Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Dużo rzeczy działa. Jedna rzecz mi tylko nie wychodzi. Kiedy naciskam zolnierz_zamek to pojawia mi się tylko healthbar bez ikonki żołnierza(jakby co to mam włożonego sprita do obj budowanie_jednostki_zamek). Bawiłem się trochę z depth, ale i tak nie działa, pojawia się tylko healthbar bez ikonki. Proszę o pomoc raz jeszcze! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 bo jak masz coś w draw to sprite znika, wpisz draw_sprite(x,y,sprite_zolnierza) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 wszędzie dawaj w draw to: GML draw_sprite_ext(sprite_index,-1,x,y,image_xscale,image_yscale,direction,image_blend,image_alpha) i nie będzie kłopotu :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m@rcixxx Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 wszędzie dawaj w draw to: GML draw_sprite_ext(sprite_index,-1,x,y,image_xscale,image_yscale,direction,image_blend,image_alpha) i nie będzie kłopotu :) Zamiast -1 ma być image_index, bo potem chłopak będzie się głowił co jest nie tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 mi działa... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m@rcixxx Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 mi działa... Zrób sobie kilka obrazków w spricie i spróbuj je zmieniać w stepie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Działa. Ale jeszcze jedna sprawa. Coś chyba nie wyszło z tym healthbarem. Czarny pasek dochodzi jedynie do 1/5 czerwonego paska, a następnie cały healthbar znika. Ustawiłem czas_wymagany na 10, więc po 10 sekundach powinna zrobić się jednostka. I owszem po 10 sekundach robi się jednostka, ale w momencie, gdy czarny pasek jest w 1/5 swojej drogi. Najśmieszniejsze jest to, że obojętnie jak bym ustawił czas_wymagany, to czarny pasek zawsze idzie z tą samą prędkością, tylko, że po prostu healthbar szybciej znika. Proszę(po raz drugi) o pomoc!!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 Korzystałeś z tego? GML draw_healthbar(x-12,y-70,x+50,y-72,hp/hp_max*100, c_black,c_red,c_lime,0,1,0); Jak tak to zamień na: GML draw_healthbar(x-12,y-70,x+50,y-72,(hp/hp_max)*100, c_black,c_red,c_lime,0,1,0); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 ja to pisałem tak od ręki więc... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Wolałbym to zrobić sposobem Dobrego Zioma bo go rozumiem, a tego nie za bardzo. @DobryZiom jeśli masz dostęp do GMa to prosiłbym cię o to, abyś na szybko wpisał sobie ten kod i zobaczył co jest w nim źle. Bez tego nie mam jak robić dalej gry Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 sorki ale kompletnie nei wiem czemu nie działa...teraz nie mam czasu :( u mnie w uploadzie jest DefenSuxers i tam masz wyświetlanie healthbara :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Pomyślałem, żeby nie robić healtbara tylko liczbę przy ikonce budującego się żołnierza. Ta liczba ma oznaczać postęp procentowy budowy tej jednostki. Udało mi się to zrobić, ale popsuła się inna rzecz. Widoczna jest tylko ta liczba, a ikonka budującego się żołnierza jest niewidoczna... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m@rcixxx Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 GML draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,direction,image_blend,image_alpha) Przecież było już o tym mówione, jak rysujesz coś innego niż własnego sprita a jego samego nie to on ci zniknie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 daj to w draw :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Nic to nie dało. W draw napisałem tak: GML draw_text(zamek_zolnierz_budowanie.x+15,zamek_zolnierz_budowanie.y+15,czas_teraz) No i jak już mówiłem wyświetla się sam postęp procentowy, bez ikonki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 draw_text(zamek_zolnierz_budowanie.x+15,zamek_zolnierz_budowanie.y+15,string(cza s_teraz)) może tak? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 Wrzucasz to do draw: GML draw_sprite(sprite_ikonki,index_ikonki,x,y) draw_text(zamek_zolnierz_budowanie.x+15,zamek_zolnierz_budowanie.y+15,czas_teraz) E: UP string(czas_teraz) jest zbędne, wystarczy samo czas_teraz. Gdybyś chciał łączyć ze sobą liczby i napisy, to dopiero wtedy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 oO nawet nie wiedziałem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 7 Lipca 2010 Autor Udostępnij Opublikowano 7 Lipca 2010 Jestem noobem i nie wiem co to jest index. Wpisałem 1 w indeksie i wyskoczył mi sprite przycisku Quit Game z Menu :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 wpisz 0 :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 7 Lipca 2010 Udostępnij Opublikowano 7 Lipca 2010 DobryZiom, co ty gadasz? index to nazwa sprita... z tym że można ją zastąpić liczbą tzn 0 to sprite który został stworzony najwcześniej,1 to ten drugi itd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 no...i mozna wpisac poprostu 0... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 image_index - klatka w animacji sprite'a sprite_index - sprite który jest przypisany do obiektu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 8 Lipca 2010 Autor Udostępnij Opublikowano 8 Lipca 2010 Dobra Działa! Wpisałem: GML draw_sprite_ext(sprite_index,-1,x,y,image_xscale,image_yscale,direction,image_blend,image_alpha) do draw i działa. Dobra jeszcze ostatnie dwa pytania, bo nie chcę zakładać dla nich nowego tematu. 1. Jak zrobić taki typowy sposób przesuwania ekranu w grze RTS? Mam już viewa, ale teraz jeszcze muszę zaprogramować, żeby ten view się przesuwał w momencie kiedy kursor dotknie krawędzi viewa. 2. Kiedy naciskam zamek to pojawia mi się interfejs. Poprzez kliknięcie LPM w obojętnie jakie miejsce rooma(nie w zamek) ma ten interfejs zniknąć. Jeśli podczas włączonego interfejsu włączyłem budowanie danej jednostki, to po zniknięciu interfejsu ma się ona nadal budować. Kiedy tak się stanie(gracz włączy interfejs, zacznie budować jednostkę, a następnie wyłączy interfejs), to po jego ponownym włączeniu ma się pojawić interfejs ze szkoloną jednostką(domyślne ustawienia są takie, że interfejs pojawia się tylko z ikonkami jednostek możliwych do zbudowania, a dopiero po ich naciśnięciu jednostka zaczyna się budować). Chodzi ogólnie o jakby takie zapisywanie stanu interfejsu, jeśli został on wyłączony. Proszę po raz ostatni w tym temacie o pomoc!!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 AD 1: Link z przykładów (drugi od góry). W Twoim przypadku stwórz obiekt, który śledzi myszkę. Wejdź także w zakładkę view w roomie, zobaczysz co i jak. AD 2: Jak chcesz coś takiego zrobić, musisz stworzyć bazę danych. Na przykład za pomocą tablic albo list. Dodajesz kod na odczytanie danych, a nasepnie wyświetlasz co Ci jest potrzebne, dla przykładu: GML (create) pot[0]=1;//tablica przechowująca ilość danych potów pot[1]=1; pot[2]=1; GML (jakas tam akcja) pot[1]-=1; GML (draw interfejsu) for(i=0;i<3;i+=1)//lecimy po całej tablicy za pomocą pętli if(pot)//jeżeli w danym indeksie tablicy jest liczba większa od 0 draw_sprite(s_pot,i,xx,yy+i*20)//wyświetl sprite pota</span> s_pot to sprite, w którym są umieszczone wszystkie rysunki potów. W drugim argumencie (image_index) masz 'i'. Dzięki temu wyświetla się odpowiedni rysunek. Pot 1 ma index 0, pot 2 ma index 1 itd. i*20, powoduje że kolejne rysunki są wyświetlane o 20 px niżej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DarkLiquidus Opublikowano 8 Lipca 2010 Autor Udostępnij Opublikowano 8 Lipca 2010 AD 1: Link z przykładów (drugi od góry). W Twoim przypadku stwórz obiekt, który śledzi myszkę. Wejdź także w zakładkę view w roomie, zobaczysz co i jak. AD 2: Jak chcesz coś takiego zrobić, musisz stworzyć bazę danych. Na przykład za pomocą tablic albo list. Dodajesz kod na odczytanie danych, a nasepnie wyświetlasz co Ci jest potrzebne, dla przykładu: GML (create) pot[0]=1;//tablica przechowująca ilość danych potów pot[1]=1; pot[2]=1; GML (jakas tam akcja) pot[1]-=1; GML (draw interfejsu) for(i=0;i<3;i+=1)//lecimy po całej tablicy za pomocą pętli if(pot)//jeżeli w danym indeksie tablicy jest liczba większa od 0 draw_sprite(s_pot,i,xx,yy+i*20)//wyświetl sprite pota</span></span> s_pot to sprite, w którym są umieszczone wszystkie rysunki potów. W drugim argumencie (image_index) masz 'i'. Dzięki temu wyświetla się odpowiedni rysunek. Pot 1 ma index 0, pot 2 ma index 1 itd. i*20, powoduje że kolejne rysunki są wyświetlane o 20 px niżej. Co masz na myśli mówiąc jakaś tam akcja? Poza tym nie bardzo jeszcze rozumiem sens tablic w gmlu. Nie powiedziałeś jak zrobić coś takiego, żeby po wciśnięciu LPM na obojętnie jaką część rooma(oprócz zamku) znikał interfejs. A co do tego viewa w RTsie to nadal nie wiem jak zrobić przesuwanie się tego ekranu. Mogę napisac w stepie obj_kursor: GML if (x=0 or x=640) then //No i co dalej...</span> Sorry za to, ale dopiero zaczynam przygodę z GM i zadaję bardzo dużo pytań(pewnie głupich). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 then to tak jakby { kod } tylko w 1 lini możesz tak: if (x=0 or x=640) { tu kod } 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ę