Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9738
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    98

Treść opublikowana przez gnysek

  1. Obecny stabilny GM nie korzysta z najnowszej wersji .NET, a bodaj z czwartej. Dopiero wersja 2022.5 będzie korzystać z .NET 6. Także wygląda, że to zbieg terminów.
  2. Przeszukałem sieć, ale jedyny wynik na ten temat to... ten temat w którym teraz odpisuję. Wygląda, ze nikt nie miał takiego problemu. Spróbowałbym po prostu wszystkich standardowych rozwiązań na znikające centrum powiadomień. Raczej nie winiłbym za to GameMakera, ale bardzo możliwe, że winny jest np. .NET, który przy okazji jest instalowany. Wejdź w "Dodań i usuń programy" i posortuj je po dacie, może spróbuj przeinstalować .NET. Btw., doinstalowałeś wszystkie aktualizacje z Windows Update dla .NET?
  3. Świetnie to wygląda, jak typowa nie-disneyowa bajka z lat '90. W sumie jedyne co mi się nie podoba, to font, ale fanów visual novelek kreską na bank ta gra przyciągnie. Zauważyłem też na ostatnim screenie, że pojawiają się dialogi dwóch postaci na raz - bardzo fajnie, np. Cinders i Solstice od TeeGee takiego czegoś nie miały, a mogłoby to zwiększyć immersję (tam zamiast tego, postać która mówiła była rozjaśniana).
  4. gnysek

    timer

    Zakładając, że A to ilość sekund, przez którą gracz może jeszcze grać, np. 8520 sekund: liczba godzin: A div 3600 liczba minut: A div 60 mod 60 liczba sekund: A mod 60 I możesz wywalić prawie połowę kodu i ifów. Natomiast rysowanie wygląda wtedy tak: function draw_remaining_time(seconds) { _s = ""; if (seconds >= 3600) { _s += string(seconds div 3600) + " hours, "; } if (seconds >= 60) { _s += string((seconds div 60) mod 60) + " minutes, "; } return _s + string(seconds % 60) + " seconds"; }
  5. Ten pojazd w 3D urywa jajca, szkoda, ze potem nie ma więcej animowanych elementów, bo naprawdę ładnie to wygląda.
  6. gnysek

    NecroArcher

    Dodane do wishlist
  7. Już nie chciałem na to zwracać uwagi, ale ja też bym zamienił ghost_x z x. Dla kolizji ważniejsza będzie pozycja gdzie jest cień, mniej ważne rysowanie. Ewentualnie przy kolizjach będzie trzeba sprawdzać offset jako wysokość, ale wciąż zamiana tych zmiennych ułatwia całość, bo można skorzystać z wbudowanych kolizji, zamiast rzeźbić własny kod.
  8. A nie wystarczy rysować cienia na pozycji ghost_x i ghost_y ? Z tego co rozumiem, to jest aktualna pozycja granatu "na podłodze", a jego lewitacja jest uzyskiwana przez dodanie offx i offy.
  9. A załączałeś profilowanie w debuggerze? Ono całkiem sporo mówi: I teraz najśmieszniej, bo jak zmieniłem draw_rectangle na draw_sprite, to udało mi się uzyskać 60 FPS, ale to wciąż słabiutko. To by trzeba jakoś zoptymalizować, na zasadzie sprawdzania całych stref gdzie ta mgła jest, a gdzie jej nie ma (np. obszar 128x128px) i wtedy malować za jednym zamachem większe czarne prostokąty. No i nie aktualizować co klatkę wszystkich pozycji. Albo zwiększyć rozdzielczość mgły, żeby nie było aż 8000 komórek na raz na ekranie.
  10. Czym jest cam_cell_width ?? Wygląda trochę, jakbyś może rysował poza ekranem. Nie wiem też czy ma sens ta ciągła zmiana wielkości GUI.
  11. Ja bym zrobił: gpu_set_blendmode(bm_subtract); draw_set_color(c_black); with(objUnit){ draw_circle(x-camera_get_view_x(view_camera[0]),y-camera_get_view_y(view_camera[0]),200,0); } gpu_set_blendmode(bm_normal); Wtedy blend mode nie będzie tyle razy zmieniany.
  12. Dziwne, że przy tylu obiektach laguje, robiłem już testy, gdzie 10000 obiektów daje radę, zresztą dobrym przykładem jest Forager - https://www.yoyogames.com/en/blog/forager-optimization-in-gamemaker
  13. Ale co konkretnie nie działa? Źle się wyświetla? Sprite jest pusty? Wywala jakiś błąd?
  14. W jakim sensie nie działa? Pamiętaj, aby włączyć testowe reklamy, inaczej nie zadziała na teście bez wyplucia pełnej wersji gry (a tam też reklamy nie muszą od razu działać, trzeba paru pobrań od prawdziwych userów).
  15. W Marketplace masz gotowy przykład użycia: https://marketplace.yoyogames.com/assets/10078/google-admob - podstawiasz tylko swoje identyfikatory.
  16. Dlaczego generujesz tyle nowych sprite w locie? Pamięć zapełni się szybko i jest to mega niewydajne, bowiem GM każdy sprite generuje jako osobną teksturę jeśli go tworzysz w grze, do tego trzyma dwie kopie do normalnego rysowania i blendingu, co daje WYSOKOŚĆ * SZEROKOŚĆ * 4 bajty. Obrazek 512x512px to jest 2 MB. Z tego kodu widać też, że faktycznie, nie usuwasz starych sprite'ów, wiec one faktycznie zostają w pamięci - GM nie zwalnia automatycznie zasobów jeśli nie są używane, robi to tylko ze strukturami i z tablicami, resztę trzeba usuwać ręcznie.
  17. Super, jak napisałeś w jednym miejscu, to poczekaj, aż ktoś napisze odpowiedź, nie pisz w drugim...
  18. Nie zapomnij zapisywać surface do bufora, bo jak się włączy wygaszacz, zablokujesz ekran, zmienisz rozdzielczość lub podłączysz monitor, jest duża szansa, że surface pójdzie się... zniknie
  19. Mi to wygląda na... Windows Terminal (nie CMD i nie PowerShell).
  20. gnysek

    Foto-galeria

    20 lecie wypada chyba... 1 listopada, więc imprezę zrobimy jednak nieco szybciej, w jakimś cieplejszym miesiącu (lipiec/sierpień?).
  21. gnysek

    Foto-galeria

    W tym roku jest 20-lecie GMCLANu, także pewnie jakiś najazd na Warszawę zrobimy, ćwiczcie wątroby (Ci, których nie ma na zdjęciu :P).
  22. Bo jak prawidłowo pracujesz z gitem, to takie rzeczy nie są potrzebne
  23. Ok, faktycznie, wygląda, że "git commit -a" robi to samo co "git add -u", a nie to co "git add". Dobrze wiedzieć Ja zwyczajnie wolę zawsze przed commitem sprawdzić co w nim idzie, dlatego bym nigdy nie połączył go z "-a" w żaden sposób.
  24. Zakładam, że teraz pocisk jest rysowany za pomocą lenghtdir, więc prawdopodobnie wystarczy skalować argument length, oraz sam obrazek, bo origin zostaje w tym samym miejscu mimo skalowania (więc wykorzystaj to na swoją korzyść).
×
×
  • Dodaj nową pozycję...