Skocz do zawartości

Zablokowane koniec gry po zmianie punktów


maslak3

Rekomendowane odpowiedzi

na początek od razu mówię ze dopiero zaczynam , chciałbym zrobic coś takiego że jak punkty zmieniają sie na -10 to gra wyświetla nowy ROOM z podliczonym czasem ( mam licznik czasu i punktów )

punkty zrobiłem tak :

 

create//

global.punkty = 0 ;

Deaw//

draw_text (x,y,global.punkty)

 

i to wyświetla punkty moje a, chce ze jak ulegnie zmianie na -10 to gra automatycznie przeniesie na iny ROOM i podliczy czas a czas zrobilem tak :

 

Create//

global.licz = 0

step//

global.licz += 1/room_speed

Draw//

draw_text (x,y, global.licz)

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jemu raczej chodziło o to:

GML
if(global.punkty >= -10)

{

room_goto(nazwa_roomu);

}

Różnica jest taka, że w jego kodzie przejdzie Ci tylko do następnego roomu przy 10 punktach(czyli jeżeli więcej zdobędzie np 11 to już nie przejdzie) a w moim przejdzie przy co najmniej 10 ;)
Odnośnik do komentarza
Udostępnij na innych stronach

Całkiem zabawne. Przyłączę się : D

 

Threef nie polecam poprawiać innych. Nie wychodzi Ci to.

 

[No hard feelings pls]

 

PatrykPlayingPOLSKA podał na samy początku poprawną odpowiedź( chyba że gm już nie pozwala używac pojedyńczego porównania )

Dlaczego?

Autor wątku w create global.punkty ustawia na 0 a wiec nie mozna użyć znaku >= bo przejdzie natychmiast dalej : )

Po za tym napisał że kiedy punkty zmienią się na -10 to ma się zmienić co sugeruje że jest to forma flagi i jest pewny że wartość tyle bedzie wynosić.

Odnośnik do komentarza
Udostępnij na innych stronach

To może zacznij od pisania zrozumiale. Interpunkcja, wielkie znaki, tworzenie sensownych zdaniań. Nie pisz wszystkego w jednym może?

Nikt nie może Cię zrozumieć.

 

Gry za Ciebie też nie zrobimy, rusz łepetyną to będziesz miał tablicę.

Odnośnik do komentarza
Udostępnij na innych stronach

Sory :D . wiec chciałbym coś takiego : że po tym jak upłynie te "-50 punktów" to czas który się naliczył, zostanie pokazany na innym Roomie. Ze dopiero zaczełem w to bawić kombinuje chociaż nad skrinem , ze jak te "-50 " upłynie to skrin sie robi ale mam problem z miejscem zapisu skrina (niepotrafie go zmienic).

Odnośnik do komentarza
Udostępnij na innych stronach

Całkiem zabawne. Przyłączę się : D

 

Threef nie polecam poprawiać innych. Nie wychodzi Ci to.

:( Przyznaję się. Chyba za szybko siadłem do komputera po tym weekendzie.

 

 

no i też 2 część pytania jak zrobić podliczanie na koniec tabele wyników

To nie jest proste, ale nie jest też zbyt trudne.

Musisz pierw wiedzieć kiedy i jakie punkty zapisać. Wiedząc to będziesz mógł w odpowiednim miejscu kodu użyć funkcji highscore_add(). Podajesz w niej imię gracza i liczbę punktów. Dzięki tej funkcji GM zapamięta 10 najlepszych wyników.

 

Drugim zadaniem jest wyświetlenie tabeli wyników. Tu także musisz wiedzieć gdzie to zrobić. Pewnie będziesz chcieć zrobić sobie specjalny room do tego.

Wyniki pobierasz w 2 krokach, a oba są opcjonalne i możesz pominąć który chcesz. Pierw możesz pobrać liczbę punktów funkcją highscore_value(). Argument to pozycja w tabeli wyników czyli: highscore_value(0) to najlepszy wynik, highscore_value(1) to drugi, highscore_value(9) to ostatni.

Oczywiście musisz sobie sam narysować ten wynik na ekranie którąś z funkcji draw_text*() więc odsyłam Cię do dokumentacji.

highscore_name() to funkcja która zwróci imię zapisane z wynikiem. Tak samo highscore_name(0) to najlepszy wynik. Ale jak pisałem przed momentem. Możesz sobie wybrać czy chcesz wyświetlać same wyniki, same imiona, albo imiona z wynikiem.

 

W razie czego jest też funkcja która czyści tabele wyników highscore_clear(). Powodzenia!

 

P.S.: Jeżeli chcesz zrobić coś inaczej, na przykład zapisać więcej niż 10 wyników, zrobić kilka tabel wyników dla osobnej mapy, albo przechowywać czasy, to czeka Cię jeszcze więcej kombinowania bo tych funkcji wtedy nie użyjesz.

Odnośnik do komentarza
Udostępnij na innych stronach

jeszcze jedno pytanie (z tabelą powoli idzie ) ale da sie zmienić miejsce zapisu skrina? bo ja kombinuje i nie wychodzi :/.

Nie. Nie możesz zmienić miejsca zapisywania danych chyba że gracz wskaże sam to miejsce przy pomocy funkcji get_save_filename(). Możesz co najwyżej utworzyć nowy folder w miejscu zapisywania danych i w nim zapisywać.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if(global.punkty <= -50 )

{

screen_save(working_directory + "\Screens\Screen"+".png")

}

 

zrobiłem coś takiego , ale nie wiem jak zrobić żeby robił sie + 1 skrin ( bo z tg co napisałem w gml to robi sie 1 i wiecej nie ).

 

tak wiem ide na skróty :D , ale da sie zrobić cos takiego ze zapisany skrin wyświetla sie w nowym roomie?

Odnośnik do komentarza
Udostępnij na innych stronach

Twój warunek najwidoczniej spełnia się wiele razy. To powoduje że zapisuje on wiele screenów.

 

Jeżeli chcesz wyświetlić screen gdzieś indziej to są na to 2 sposoby.

 

1. Zapisać screen na dysku tak jak to teraz robisz. Potem przy pomocy sprite_add() wczytać screen na surface i go rysować.

 

2. Stworzyć surface, zapisać na nim zawartość screena a potem go wyświetlać. Ten sposób jest lepszy jeżeli ten screen ma być tylko na chwilę.

Odnośnik do komentarza
Udostępnij na innych stronach

Jemu raczej chodzi o to żeby zapisać więcej screenów bo teraz mu się nadpisują.

 

Zrób sobie licznik i sprawdzaj czy plik istnieje za pomocą file_exists() jeśli nie istnieje to wtedy zapisz.

 

Pamiętaj że jak ten kod będziesz miał w step i cały czas -50 punktów to zapiszą Ci się tysiące screenów, zrób sobie jakiś przerywnik.

Odnośnik do komentarza
Udostępnij na innych stronach

dobra no wybaczcie ze tak chaotycznie jest. ale wiecie wszystko tak wprowadzam i się uczę wszystkiego, staram sie ogarnąć choć odrobinę "gml" .

tak pytam ciągle ale wszystko co każdy pisze przydaje mega, czasem nie rozumiem ale posiedzę poczytam i mam. wiele poradników (czytanych bo na yt same dzieci)

i taki znalazłem na początek ale niedziała

GML
1. score = 0;

2. lives = 3;

3. action_set_caption(true,"Monety: ",true,"Zycia:",false,"health: "); // to niedziała :/</span>

i nie wiem może to na jakąś starszą wersje ?

tak samo

GML
1. highscore_show(score);

2. game_end();

tez nie ?

Odnośnik do komentarza
Udostępnij na innych stronach

kolejne pytanie :D

jak w kodzie np gdzie liczy punkty zrobić żeby był napis?? normalny wyswietlany?

jeszcze pytanie takie jak wstawiam powiedzmy gif ustawiam ze ma być szybkoś pomiedzy zdj 1 ( room ma 30)

a jak daje do roomu to zapierdziela jak niewiem ( jak to naprawic )?

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...