Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    141

Treść opublikowana przez gnysek

  1. Jeśli nie pomaga, to pewnie gdzieś potem dalszy kod ręcznie znów zmienia speed/klatkę. Może ustawiasz własnie image_index = 89, a ponieważ klatek jest 88, GM automatycznie pokazuje zerową?
  2. Jeśli masz 89 klatek, to pierwsza ma numer 0 a ostatnia 88, uważaj
  3. Bo tak działa GM, animacje się zapętlają. Musiałbyś dodać warunek, że jak jest na ostatniej klatce to ustawiasz image_speed na 0, albo jak zmieniasz sprite to też ustawiać na 0.
  4. powinno, ale.... zegarAtaku co klatkę zmniejsza się o 1. Może to zmniejszaj o mniejsze wartości, jak np. 0.2 ? Musisz zacząć czytać swój kod, w evencie step dodając przed każdą linijką "w tej klatce obrazu...." i od razu wychwycisz problematyczne miejsca.
  5. jeśli wymuszasz klatki obrazu, to ustaw image_speed na 0, żeby GM ich sam nie zmieniał.
  6. A próbowałeś wartości mniejsze niż 1 ? Np. 0.5 ?
  7. Musisz po prostu przypominać. Róbcie dev-blogi i się chwalcie co tam zrobione
  8. Może po prostu termin do końca wakacji zróbcie sobie ?
  9. gnysek

    Galeria Grafik

    Taki typowy styl dla jakiejś fajne indie-gierki gdzie postaci są lekko komiksowe.
  10. W ogóle nie zastanawiasz sie co podajesz jako argumenty w funkcjach. Popatrz, jak rysujesz prostokąta, a gdzie potem próbujesz rysować tekst. Musisz go rysować tak samo, jak górną część prostokąta plus ewentualnie jakiś offset (np +5 pikseli).
  11. Jeżeli view ma inny rozmiar niż okno to nie, wtedy view_wview[0] i view_hview[0].
  12. A widziałeś w moim poście słowo pseudokod ???
  13. ok, no to nie zostaje nic innego, jak rysować textbox od środka gry czyli np. na tej zasadzie (pseudokod). var _x = view_width/2; var _y = view_height; draw_rectangle(_x -100, _y - 50, _x + 100, _y + 100);
  14. Nie musisz nic kodu rysowanie zmienić. Użyj: display_set_gui_size(1024, 768); czy jak tam chcesz a potem var _w_percentage = display_get_height()/768 * (1024/768); display_set_gui_maximise( _w_percentage, display_get_height()/768, ( 1024*_w_percentage - display_get_gui_width()) / 2, 0); i powinno załatwić sprawę. To wyżej przeskaluje GUI do obecnego rozmiary ekranu utrzymując proporcje i przesunie o tyle pikseli w lewo ile wynosi różnica między rozmiarami. Jakoś tak to będzie, proporcje piszę z głowy teraz - ale w tym artykule który podlinkowałem było to opisane, niepotrzebnie szukasz problemu gdzie indziej.
  15. Ale co jest złego w tym, żeby GUI zawsze ustawić na jakiś tam rozmiar i skalować oraz offsetować ? Wtedy zawsze będzie na środku jak chcesz.
  16. Użyj draw gui, wymuś rozmiar i ustaw offset. Będzie wtedy na środku. https://www.yoyogames.com/blog/65/the-basics-of-scaling-the-gui-layer
  17. Auto increment i tak można zostawić, zawsze to łatwiej intem potem pobierać rekord. Co do przerwaia requestu - musisz aktualizować jednym requestem w takim razie. Przesyłać całą tablicę. Albo jakiś JS i dla kazdego elementu wywali "błąd" gdy się nie zapisze, żeby user ponowił zapis (pętla nie ma sensu, bo jak net padnie to będzie napierdzielać co sekundę :P).
  18. Jak zmienisz liczbę pytań to diff będzie niemal niemozliwy. Jedyna opcja jaka mi przychodzi to dawać losowy numer (GUID?) Każdemu pytaniu to potem odnajdziesz starą wersję tego samego po tym nawet jak się kolejność zmieni. Zapisuj też ich pozycje to będzie widać które były gdzie przesuniete - ale idealnego diffa nie uzyskasz. Nawet w gicie jak przedstawisz tekst 5 linijek dalej to on je widzi jako usunięte i nowe a nie różnice.
  19. Ale co ma wspólnego ds_create z problemem, że to przeszkadza w modyfikacji kodu? Sprawdź w dokumentacji co ta funkcja robi i wtedy dopiero na nią narzekaj. Bo ona nie ma nic wspólnego z save. Służy do stworzenia listy z danymi (taka tablica w sumie).
  20. Zaczynam się zastanawiać, czy w ogóle rozumiesz co znaczą znaki mniejszości i większości?
  21. bo ja nie wiem gdzie Ty masz ten kod, musisz się zastanowić chwilę co robisz... myślalem, że to w jakimś evencie kolizji czy coś, gdzie bohater umiera. Jak w stepie to oczywiste, że co klatkę obrazu się wykona wiec po 3 klatkach koniec gry. Dostostuj go zatem do swojego kodu którego nie znam. Tylko nie wklejaj go całego.
  22. A co ja napisałem wyżej ? if (global.life > 0) { global.life -=1; } else { if (can_finish == false) { if (alarm[0] == -1) { // zacznij tylko gdy jeszcze się nie odlicza alarm[0] = 60; // 150 to 5 sekund } } else { if (global.pScore >= 500) //Sprawdz czy wynik nadaje sie do highscore,ale musi zostac spelniony warunek punktowy { var s=highscores[| ds_list_size(highscores) - 1]; //Czy punkty kwalifikuja sie na top 10 if (ds_list_size(highscores) < 10 || s[?"score"] <= global.pScore) { room_goto(rm_save_score); exit; // zakoncz wykonywanie eventu step w tej klatce } } room_goto(rm_game_over); } }
  23. Właśnie sie zastanawiałem, dlaczego tam jest >0 ale myślałem, ze tak sobie wymyśliłeś, że 0 = żyje, 1 = nie zyje. Ale ok, w takim razie: if (global.life > 0) { global.life -=1; } else { /// kod od highscore }
  24. w respawnie daj if global.life > 0 i po sprawie. Mam wrażenie, że nie rozumiesz co robi Twój kod. Po co jakieś alarmy do respawnów, skoro to jest zmienna true/false jak mniemam ? umierasz to umierasz, wyłączasz mozliwosc respawna od razu. Możesz nawet tam, gdzie global.life pomniejszasz o 1.
  25. Nic z tego wyżej nie rozumiem. Strzelam jedynie, że gvX i gvY się resetują na 0. Co do flagi - ona nie ma nic wspólnego z game_end(). Game End robi to samo co Alt+F4, albo zakończenie procesu w menedżerze zadań. Ja zrobiłem flagę, dzięki której albo ma się 1 raz włączyć alarm, jeśli jeszcze nie leciał, albo - jeśli już się zakończył o czym mówi właśnie ta flaga - wykonał kod przejścia do następnego roomu.
×
×
  • Dodaj nową pozycję...