Skocz do zawartości

Ranking

Popularna zawartość

Zawartość, która uzyskała najwyższe oceny od 16.05.2021 uwzględniając wszystkie działy

  1. Kurcze no nie wiem, ten obszar jakoś tak trąci prehistorią, jeszcze ten gradient okropny. Nigdzie indziej nie masz w swoim designu gradientu. I znowu będzie na głównej milion okienek okieneczek 🤔🤔 Natomiast górna część mi się podoba, zakładka polskie gry to fajny będzie smaczek.
    2 punkty
  2. `if obj_trampolina == false && place_meeting(x,y,par_entity)` serio?
    1 punkt
  3. To dodaj zmienną `start` w Create obj_trampolina. Jeżeli ten obiekt dziedziczy z innego obiektu Create, to na początku skryptu użyj event_inherited() to wtedy Create rodzica również zostanie wywołany. Nie, bo zmienna `start` będzie widoczna tylko i wyłącznie w tym bloku kodu, jak tylko go opuści to zostanie usunięta - nie będzie miała żadnej wartości, ani true ani false, przestanie kompletnie istnieć. Polecam przejrzeć: https://docs.yoyogames.com/source/dadiospice/002_reference/001_gml language overview/variables/index.html - w tym podartykuły instance variables oraz local va
    1 punkt
  4. W kodzie Step nie masz ustawianej flagi `start = true` więc technicznie flaga nigdy się nie zmienia. Wstaw `start = true` zaraz pod `alarm[0] = room_speed * 5`. Dodatkowo w Step nie sprawdzasz czy `start == false` żeby uruchomić blok odpowiedzialny za skok. Np. `if start == false && place_meeting(x,y,par_entity) {`.
    1 punkt
  5. Tak, jest to jak najbardziej poprawne. obj_trampolina zmienia grawitację tylko wyłącznie kiedy dotknie par_entity, imo najlepiej byłoby przywrócić wartość w Step par_entity kiedy opadnie już na ziemię.
    1 punkt
  6. Ale nie dziedziczą tych samych stanów, każda instancja tworzy własną wersję zmiennej `g` (jedynie na podstawie obiektu par_entity).
    1 punkt
  7. W takim razie musisz dodać Alarm w obiekcie obj_trampolina, np. dodaj zdarzenie Alarm[0] i w nim wstaw blok kodu resetujący flagę `start = false`. Generalnie polega to na tym, że teraz Animation End nas nie interesuje, tylko czas, więc w Animation End możesz zatrzymać animację `image_speed = 0` ale nie zmieniaj flagi `start` - to zrobi Alarm[0] po 5 sekundach. No ok, ale teraz ustawiasz zmienną `g = 0.5` w instancji obj_trampolina, zamiast w par_entity, dlatego to nie zadziała. Ustaw grawitację w instancji par_entity, przecież od tego masz blok `with instance_place(x,y,par_entit
    1 punkt
  8. Przejrzałem dokumentację i faktycznie nie ma tego zdarzenia, to musisz w takim razie ustawiać flagę w miejscu, gdzie uruchamiasz animację. To już zależy jak będzie działać w tym wypadku, w if z place_meeting możesz ustawiać grawitację i resetować ją w kodzie Step par_entity jak "stoi" na ziemii. return nie musi przyjmować wartości, w tym wypadku przerwie całe zdarzenie Step. Jeżeli masz więcej bloków ze skryptami, to możesz użyć break, to powinno przerwać pojedynczy blok.
    1 punkt
  9. Kod w Step obj_trampolina zostaw, dodaj flagę `start` w Create trampoliny, ustaw ją na `true` w zdarzeniu Animation Start a `false` po zakończeniu animacji (w zdarzeniu Animation End). Dodatkowo kod w Step wzbogać o sprawdzanie flagi start np. dodając na początku `if (start == false) return;`. Jeżeli ma wolniej opadać, to tak, pozostaje modyfikacja grawitacji. Możesz też np. zresetować grawitację (z np. 0.5 do 1.0) po dotknięciu podłoża.
    1 punkt
  10. Zachowuj stan trampoliny w zmiennej, np. jakąś flagę i steruj nią podczas animacji w zdarzeniach Animation Start oraz Animation End. W kodzie odbicia przed place_meeting sprawdzaj, czy flaga jest True i tyle. Możesz odpalić dźwięk w zdarzeniu Animation Start.
    1 punkt
  11. Powiedziałbym, że korzystałem z tego tak samo często jak w innych językach programowania, czyli generalnie wcale
    1 punkt
  12. Na pewno zgubiłeś gdzieś spację, prawidłowo funkcja powinna wyglądać tak: font_main = font_add_sprite_ext(font_test, "!\" $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^+`abcdefghijklmnopqrstuvwxyz{|}~€ąćęłńóśżźĄĆĘŁŃÓŚŻŹ", true, 0); (Zwróć uwagę na backslash przed ", a potem na spację po " i przed $ ). Moja strona obsłuży każdy font który masz zainstalowany (jakby coś). Wydajność - to zależy co innego dzieje się w grze. Ja już robiłem takie, gdzie każda literka jest rysowana osobno i jakoś dawało radę.
    1 punkt
  13. Jeśli chcesz ładny kontur, to zrób z czcionki sprite. Podstawowy sprite możesz zrobić korzystając z mojego generatora: https://gnysek.github.io/gms-font-creator/ . Potem w dowolnym programie dodaj sobie ulubioną ramkę i dodaj font przez font_add_sprite_ext (mój generator daje od razu listę znaków która będzie drugim argumentem).
    1 punkt
  14. Tak, tam jest błąd. Ten argument7 przeszkadza. Plus, ten kod działa w miarę ok tylko wtedy, kiedy grubość konturu nie przekracza liczby 2. Po przekroczeniu tej wartości kontur ma braki w rogach, bo rysuje on tylko góra/dół, lewo/prawo. Niemniej plusem jest wydajność, bo zawiera tylko 5 kroków kodu. Najprościej będzie to zrobić for'em, z rysowaniem 360 stopni. Nie wiem jak z wydajnością tego, tutaj starzy wyjadacze mogą się wypowiedzieć. Jakby nie było, jest tutaj 361 kroków do wykonania. Myślę, że jeśli chodzi o optymalizacje, to najlepiej shadery, ale tego jeszcze nie potrafię.
    1 punkt
  15. Może to być problem tu argument1+argument7, ale sam nie wiem.Musiałbyś pokombinować. Łączysz argument7 który jest alpha z argumentem1 który jest y. Może ktoś bardziej doświadczony będzie Ci wstanie pomóc.
    1 punkt
  16. Na moje oko wygląda to na z-fighting, precyzji z-buffera w GM nie można zmienić, ale zakładam, że i tak jest ustawiony na 24bity. Niestety pozostaje zmniejszenie maksymalnej odległości rysowania na mniejszą, albo zrobić niewielką przestrzeń między nakładającymi się teksturami, bądź w ogóle nie rysować nakładających się ścian.
    1 punkt
  17. Faktycznie, 500kb było dla użytkowników, to pewnie przez aktualizację forum. Zmienione
    1 punkt
  18. Postanowiłem trochę przysiąść nad nowym GMCLANem, który powstaje już pewnie z dekadę, ale do tej pory nie wyszło to poza brzydkie obrazki. Do tej pory. Bo teraz mam już wersję PHPową która wstępnie zaczyna już działać (podstrony wczytują osobne kontrolery php). W pierwszej wersji próbowałem coś na zasadzie boostrapa któremu nadam obecne kolory gmclanu (szare), ale część z was sugerowała, żeby od tego odejść i trochę bardziej zaszaleć. No to zaszalałem Główna: Strona z artykułem: Profil To
    1 punkt
  19. A jaka wersja GameMakera ? W studio 2 ustawiasz prędkość w game properties, nie ma speeda per room. No i skoro wyskoczyło u kolegi 60FPS, to znaczy, że u niego działa normalnie a u Ciebie zamula
    1 punkt
  20. Ja tam nie wiem co macie do tego loga, mnie się podoba
    1 punkt
  21. Ja też jestem noga z uxowych rzeczy ale postaram się coś rozkminić Wydaje mi się że pod ten typ strony samo themeforest to nie do końca wystarczy i sam nie do końca jeszcze wiem jak to ugryźć ale spróbuję
    1 punkt
  22. No to znów matematyka. Możesz np. sprawdzać odległość, załóżmy, że alpha ma się zmieniać od 123 pikseli od postaci (podaję taką dziwną liczbę, żeby lepiej było to widać w działaniu). var dist = distance_to_point(lustro_x, lustro_y, bohater.x, bohater.y); var alpha = 1 - clamp(dist/123, 0, 1); // można też np.: // var alpha = 1 - min(1, dist/123); // itd. itp. draw_sprite_ext(......, alpha); // czy tam draw_suface_ext, obojętnie
    1 punkt
  23. Niestety to jest związane z precyzją depth buffera, oddalone "piksele" nie mają dostatecznej precyzji aby nałożone na siebie elementy rysowały się w odpowiedniej kolejności, tzw. z-fighting https://en.wikipedia.org/wiki/Z-fighting i nie ma to żadnego związku z rozmiarem tekstur Jednym ze sposobów (i chyba najprostszym) może być przesunięcie elementów o niewielką wartość, aby tekstury rysowane d3d_draw_wall nie nachodziły idealnie na siebie.
    1 punkt
  24. Jeżeli chcesz zamienić bieguny wartości 0.0 - 1.0 oraz 1.0 - 0.0 w oparciu o jedną zmienną, to najprościej użyć odejmowania, np.: // W zdarzeniu Create inicjujemy potrzebne nam zmienne // Licznik czasu oraz czas w jaki ma zmienić się alpha np. w 2 sekundy sekunda = 0.0; fade_time = 2.0; // Przy aktualizacji klatki dodajemy kolejne wartości zmiennej sekunda w zdarzeniu Step // Ale uwaga! Liczymy cząstkową sekundy na daną klatkę rysowania (tzw. delta time) var delta = 1.0 / room_speed; sekunda += delta; // Teraz możemy policzyć przezroczystość sprite'ów w zdarzeniu Step // Dodatkowo wa
    1 punkt
  25. Tylko że ja używam starszej wersji gms 1.4
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
×
×
  • Dodaj nową pozycję...