Skocz do zawartości

Dawidds

Użytkownicy
  • Postów

    1 970
  • Dołączył

  • Ostatnia wizyta

O Dawidds

  • Urodziny 08.12.1994

O mnie

  • Skąd
    stamtąd
  • Płeć
    Female
  • Adres www

Edytowalne przez adminów

  • gamoń ;(

Ostatnie wizyty

21 449 wyświetleń profilu

Osiągnięcia Dawidds

Master of Forums

Master of Forums (10/13)

0

Reputacja

  1. tak tylko przypominam o forum*

  2. Nie zoptymalizujesz tego, room_speed jest ustawiony na 90 (swoją drogą lepiej ustawić to na 60, monitory niezbyt często mają tempo odświeżania ekranu większe niż 60 (60MHz)) to znaczy, że 90 razy na sekundę okno gry jest rysowane od nowa - i nie działa to tak, że odrysowywane jest tylko to, co się zmieni - po prostu 90 razy na sekundę cały ekran gry jest rysowany jeszcze raz. I nic nie "zostaje" na ekranie - wszystko, tzn. tło, tilesy, wszystkie obiekty, punkty (wszystkie eventy draw) rysują się od nowa.
  3. 0-255 = 8 bitów, 0-127 = 7 bitów. 14 bitów ewidentnie nie zmieści się w ośmiu : p Zmieścisz dwie wartości 0-15, i zapis: liczba = (a << 4) + b; Odczyt: a = liczba >> 4; b = liczba mod 16;
  4. collision_line nie zwraca ani true ani false, zwraca id pierwszej napotkanej instancji lub noone (-4). Użyj samego "if collision_line()", nie dodawaj żadnego "= true" na siłę, bo poza takimi błędami nic Ci to nie da ; )
  5. Pewnie się jakoś da ale zawsze możesz nie obciążać exe tymi czterystoma grafikami i wczytywać je z plików
  6. No to normalnie collision line, x1y1 to pozycja gracza, x2y2 to origin dachu, i sprawdzasz kolizje ze ścianami domku czy co tam chcesz.
  7. Poszukaj wzoru na siłę grawitacji i GML motion_add(point_direction(x, y, planeta.x, planeta.y), moc);
  8. 1. Pierdzielisz particle i robisz to na obiektach - wtedy sobie dasz radę i będzie bardzo dokładnie 2. Dajesz obiektowi emitera jakąś okrągłą maskę i wtedy każdemu obiektowi możesz dać event "Collision with o_dym_emitter" 3. W każdym obiekcie sprawdzasz dystans do obiektu emitera (albo obiektów) i jeśli jest mniejszy niż x to ktoś jest zakażony Spróbuj sobie wersji 2., jeśli uznasz że jest za mało precyzyjna odwzoruj sobie particle na obiektach i będziesz miał normalne kolizje. Threef, co to za magiczne odwołanie "i.x, i.y"? : D
  9. https://gmclan.org/index.php?sciagnijplik=182
  10. Tutaj podam drugi pomysł na rozmycie w gmie - wykorzystanie interpolacji przy rysowaniu. Rysujemy surface (z włączoną interpolacją) na dwa razy mniejszy surface, po czym przywracamy go do pierwotnego rozmiaru (powiększamy dwa razy). Później znowu zmniejszamy, znowu powiększamy itd. Można tutaj stosować różne kombinacje skali surfaców (zmniejszyć go dwa razy, potem zwiększyć dwa, zmniejszyć cztery, zwiększyć cztery itd.) i kombinować z nimi w celu uzyskania najlepszego stosunku jakośći do fpsu. Jakiś sample który dla kogośtam robiłem kiedyś, w sumie sam nie pamiętam kogo: http://dl.dropbox.com/u/25762547/blur.gmk Fps tej techniki może nie powala (choć można to jeszcze zoptymalizować) ale jakość rozmycia jest myślę znacząco lepsza niż wersji z półprzezroczystymi surface'ami. Istnieje:GML draw_set_blend_mode_ext(bm_zero, bm_inv_src_color); draw_sprite(sprite, 0, 0, 0); draw_set_blend_mode(bm_normal); Rysujemy to oczywiście na surfacie (surface_set_target()). Maska "sprite" powinna być cała czarna i wtedy jej kanał alpha zostanie przeniesiony na surfejsa (tam gdzie sprite jest przezroczysty na x% tam surface będzie przezroczysty na x%). W sumie pisze te blendy z pamięci ale chyba się nie pomyliłem : p
  11. Niech sobie ta latarka trzyma tego surfejsa nawet w roomach w których go nie używasz (będzie jeden obiekt, z persistent, tak jak teraz masz), i wtedy tylko cały step i draw rozpoczynasz kodem GML if(global.latarka) { I zostaw w Game End to surface_free(). Będzie się bugować, bo obiekty w innych roomach i tak by się tworzyły, tyle, że te następne by nie miały stworzonego surfejsa (game start) a próbowały z nich korzystać (step/draw)
  12. Tworzy Ci się pare obiektów od światła, zadbaj o to żeby był jeden na mapie (ustaw persistent temu na pierwszej mapie z następnych wywal te obiekty albo odznacz persistent i zostaw obiekt od światła na każdej mapie).
  13. I w jaki sposób surface'y pomogły Ci uzyskać ten efekt ^^ ? Rysuj primitivami i będziesz miał broblem z głowy i nawet wydajniejsze rysowanie, chociaż w sumie nie wiem co Ty wykombinowałeś dokładnie z tymi surfami.
  14. Może zacznijmy od tego po co rysujesz liny za pomocą surfaceów, tym bardziej że sam stwierdziłeś, że "wiele surface'ów musi być odmalowywane w każdym stepie".
×
×
  • Dodaj nową pozycję...