Skocz do zawartości

Konrad-GM

Użytkownicy
  • Zawartość

    2563
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Ostatnia wygrana Konrad-GM w Rankingu w dniu 17 Listopad

Konrad-GM posiada najczęściej lubianą zawartość!

Reputacja

17 Dobry człowiek

O Konrad-GM

  • Tytuł
    Legendary Hobo
  • Urodziny 07/31/1992

Contact Methods

  • Website URL
    https://lethiandev.github.io/

Previous Fields

  • Steam
    samael_x92
  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Uytkownik Godot
    Tak

Profile Fields

  • Płeć
    Mężczyzna

Ostatnie wizyty

20720 wyświetleń profilu
  1. Czy GM domyślnie rysuje poza viewem?

    Dokładnie, bez sensownego mierzenia wydajności, jakakolwiek próba optymalizacji nie ma sensu, bo może to być zwykłą stratą czasu. Edit: Na szybko sprawdziłem, czy zmiana visible połowy sprite na false ma jakiś wpływ na FPS - i nie ma żadnego, FPS tak samo niski jaki był
  2. Czy GM domyślnie rysuje poza viewem?

    IMO przedwczesna optymalizacja też jest zła, optymalizuj rysowanie sprite, kiedy faktycznie będzie miało to wpływ na wydajność Przejrzyj może artykuł dot. optymalizacji na Yoyo, jest tam kilka wzmianek o optymalizacji rysowania spritów.
  3. Czy GM domyślnie rysuje poza viewem?

    To też nie do końca prawda, odrzucane są trójkąty podczas renderingu, po vertex shaderze (Vertex Post-Processing). Także żeby zminimalizować draw call'e, które też mają wpływ na wydajność, stosuje się własny clipping. Podejrzewam, że o to chodziło autorowi
  4. Strzał 3d

    Widzę, że wkraczasz w bardziej złożone kwestie z programowaniem fizyki w grach Podejrzewam, że problem jest z dużą ilość wrogów na mapie - albo użyj dezaktywacji obiektów poza pewnym rejonem dookoła gracza funkcjami z rodziny instance_(de)activate_*, albo porzuć stosowanie flagi solid i oprogramuj swoją obsługę kolizji w Collision Event-ach. Nie mam pojęcia, jak GameMaker obsługuje kolizje i czy stosuje coś na wzór spatial partitioning - quadtree, spatial hash itp., może ktoś bardziej obeznany w tych kwestiach z GMem by podpowiedział. Ale mógłbyś też posilić się własną implementacją sprawdzania kolizji używając quadtree czy prostszym w implementacji spatial hashing (quadtree vs spatial hashing). PS. Możesz skrócić swój kod with(obj_potwor) do with(obj_potwory) ustawiając wrogom tego samego rodzica parent obj_potwory.
  5. Jak zabezpieczacie swoje gry w GMS?

    Też raczej bym się tym nie przejmował, jak zrobisz interesującą grę, to więcej osób po prostu ją pobierze (co jest chyba ważniejsze). Zamiast tracić czas na implementację *byle* zabezpieczeń (które i tak można złamać) to poświęć ten czas na jakiś fajny feature w grze Ale żeby nie odchodzić od tematu kompletnie bez rozwiązania żadnego, to można zastosować jakieś proste triki jak np. oszukiwać gracza "hakera" o wartościach zmiennych, np. złoto w grze byłoby przesunięte o 3 bity, co dawałoby kompletnie inne wartości w Cheat Engine (potem trzeba tego pilnować przy odczycie/zapisie ilości złota!), albo użyć coś na wzór XOR-owania zmiennych przed i po zapisie w pamięci RAM. Albo jak gnysek wspomniał, użyj hashowania zmiennych kluczowych, ale też w pamięci gry, a jak ktoś Cheat Enginem spróbuje je zmienić, to hash się nie będzie zgadzał przed np. odczytem ilości złota albo dodatków. Wtedy będziesz mógł obsłużyć próbę "zhakowania" gry i odczytać te zmienne np. z zaszyfrowanego save-a.
  6. Cześć, GameMaker Studio 1.4 tworzy backupy w katalogu %USERPROFILE%\Documents\GameMaker\Backups (ustawienia standardowe), generalnie polecam używać jakiś VCS jak np. Git.
  7. adresowanie zmiennych

    W większości przypadków self praktycznie Ci się nie przyda, osobiście sam nie stosowałem tego rodzaju odwołania i nie potrafię powiedzieć, do czego byłoby to użyteczne, ponieważ i tak blok kodu jest wykonywany w kontekście self.
  8. adresowanie zmiennych

    Mam wrażenie, że nie przeczytałeś tego co napisał @I am Lord Średnik ';' służy tylko do oddzielania wyrażeń, także jeżeli napiszesz dwa wyrażenia w jednej linii oddzielając je średnikiem, to nie ma to żadnego znaczenia, poza formatowaniem kodu. Także w Twoim przypadku zmienna 'z' będzie zmieniona w instancji obiektu obj_pocisk.
  9. adresowanie zmiennych

    Jeżeli w obiekcie obj_pocisk, stworzysz event Collision Event z obiektem obj_wrog, to ten kod: z = 10; Będzie dotyczyć instancji obiektu, w którym ten event (kod eventu) jest wykonywany. W tym wypadku będzie to instancja obiektu obj_pocisk. Aby odwołać się do instancji obiektu obj_wrog, używasz referencji other, tj. other.z = 10; Dodatkowo, w GM jak edytujesz skrypt, to w belce edycji jest taka opcja jak Applies To. Jeżeli zaznaczysz np. opcję Other, to cały kod będzie objęty tak jakby blokiem with: with(other) { <kod_skryptu> } Nie polecam tej opcji, utrudnia tylko czytanie kodu, także warto mieć to na uwadze, żeby z tej opcji nie korzystać.
  10. Nad czym aktualnie pracujesz?

    @LionX Dagger robił grę o kucach, zapewne chodzi o NHFEA, to też muszę przyznać, że styl mógł się skojarzyć
  11. adresowanie zmiennych

    Cześć, mi to wygląda na to, że Twój obiekt obj_krew nie ma zmiennej 'z'. Zmienne przeważnie tworzy się w Create Event, bo jest to event, który jest wykonywany wraz z funkcją instance_create i potem te zmienne są dostępne w referencjach na instancję zaraz po jej stworzeniu (np. "other.zmienna = 10", czy "var inst=instance_create(x,y,obj_krew); inst.zmienna = 10"). Artykułów dot. zmiennych na GMClan jest kilka, np. https://gmclan.org/index.php?czytajart=30 , przejrzyj listę artykułów na stronie https://gmclan.org/index.php?artykuly=17 mogą Ci się przydać w zrozumieniu zmiennych, argumentów, funkcji, operacji na nich itd. EDIT: v
  12. Strzał 3d

    Wyrażenie other jest tak jakby referencją na instancję, także każdy parametr instancji jest dostępny poprzez other.parametr_instancji, polecam przejrzeć dokumentację: https://docs.yoyogames.com/source/dadiospice/002_reference/001_gml language overview/keywords.html
  13. Strzał 3d

    Jeżeli używasz tego kodu na obj_pocisk co Ci przesłałem, to ten pocisk nie używa zmiennej direction, dlatego direction zawsze będzie równe 0. Spróbuj odczytać kierunek pocisku od jego zmiennych motion_xyz. Jest to wektor lotu pocisku i można za jego pomocą policzyć wektor normalny w którym kierunku leci pocisk na płaszczyźnie 2D tj.: // normalizujemy wektor 2D motion_xy var motionlen = sqrt(other.motion_x*other.motion_x + other.motion_y*other.motion_y); var xdir = other.motion_x / motionlen; var ydir = other.motion_y / motionlen; // teraz przesuwamy wroga x += xdir * 5; y += ydir * 5;
  14. Strzał 3d

    Funkcja place_meeting bierze pod uwagę maski obu instancji, maskę obj_pocisk i obj_wrog. Jeszcze istnieje taka funkcja jak position_meeting do sprawdzania kolizji tylko punktowo
  15. Nad czym aktualnie pracujesz?

    Nie jest to tak trudne, po prostu wymaga trochę innego myślenia niż GM-owe surface'y, podsyłam też niewielki przykład: render-target.zip Nie jestem pewien, czy z forum działa pobieranie plików, ale wgrałem też na inny hosting: https://www23.zippyshare.com/v/xXpprq1O/file.html - LPM "niszczy" surface
×