Skocz do zawartości

Amaterasu

Użytkownicy
  • Postów

    390
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Amaterasu

  1. A jednak dobry temat : O @LionX Dagger: prędzej zrobiłbym obwódkę na ziemi wokół przedmiotu, który można podnieść/użyć, jak w grze Spellforce.
  2. Krzywe Beziera znajdują zastosowanie w olbrzymiej ilości dziedzin nauki, są podstawową strukturą, na bazie której tworzy się grafikę wektorową, służą do opisu różnorodnych równań. Nie będę o nich pisał, spróbuję natomiast pokazać, w jaki sposób mogą okazać się pomocne w tworzeniu gier komputerowych. Po podstawową wiedzę nt. krzywych Beziera, odsyłam do Wikipedii: http://pl.wikipedia.org/wiki/Krzywa_Béziera Link: https://gmclan.org/uploader/8433/Krzywe_Beziera.zip W paczce znajdują się trzy pliki projektów i jeden plik ze skryptami. Skrypty, jak i projekty, są opatrzone komentarzami w kodzie. Opis projektów: -bezier_diagram.gm81: dobrze zacząć od tego pliku, pokazuje budowę krzywej, pozwala zmienić jej kształt, a także ułatwia zrozumienie, dlaczego funkcja przyjmuje argumenty z przedziału od 0 do 1. -bezier_car_acc.gm81: przykład zastosowania krzywej Beziera, aby uzyskać iluzję realistycznego przyspieszania pojazdu. Normalnie przyspieszenie to zależy od wielu czynników, m.in. oporu powietrza, mocy silnika, tarcia. Za pomocą jednej krzywej dostajemy bardzo podobny efekt, mając do dyspozycji jedynie stałą przyspieszenia i wartość maksymalnej prędkości. -bezier_random.gm81: przykład zastosowania krzywej Beziera do stworzenia własnego rozkładu prawdopodobieństwa, czyli funkcji prawdopodobieństwa wylosowania wartości z dziedziny (dziedziną tutaj jest przedział <0;1>). Na wielu diagramach widać zależność kształtu krzywej Beziera od otrzymanego rozkładu. Przydaje się np. do zwiększenia szans na strzelenie z broni na krańce rozrzutu zamiast w centrum Projekty korzystają z wielomianowych krzywych Beziera trzeciego stopnia, mają pewne limitacje, które można częściowo ominąć stosując więcej punktów kontrolnych (zwiększając stopień wielomianu). Na pewno można znaleźć więcej zastosowań krzywych, choćby symulacje ognia czy korzystanie z krzywych jak z pathów. Polecam eksperymentowanie.
  3. Co trzecie forum, jakie widzę w Internecie korzysta z tego samego (lub bardzo podobnego) szablonu co GMClan, choćby forum CD-Action lub Sadistic.
  4. Ale to nie będzie tak, że cały teren taki płaski?
  5. Hm, i znowu - nigdy mi się nie zdarzyło, żeby surface zniknął, nawet przy dwugodzinnych sesjach z szukaniem najkrótszej ścieżki w grafie zupełnym.
  6. SCR_INI: GML draw_set_color(c_white); //draw_rectangle(0,0,room_width,room_height,0); //czycimy surface'a, rysuj?c na ekranie czarny prostok?t</span></span> zamień na GML draw_clear_alpha(c_white,0) //czyszczenie obszaru rysowania (w tym przypadku surface'a) draw_background(BAC,0,0) //narysuj raz background na surface'u, będziesz z tego korzystał w późniejszych funkcjach</span> Wywal skrypt SCR_STEP. Nic nie zniknie w magiczny sposób z surface'a, jeżeli już raz coś narysowałeś. Tak samo usuń event Step. Restartując grę nie usuwasz stworzonych wcześniej surface'ów, czym szybko zaśmiecisz pamięć karty graficznej. Przed restartem użyj funkcji surface_free(back).
  7. Ten sposób jest chory, ale podoba mi się >: D
  8. Bez wiedzy o tym, czym są surface'y, nie jesteśmy w stanie dalej pomóc. Na forum znajdziesz wiele przykładów z surface'ami, w dokumentacji jest opis funkcji, zrób sobie miniprojekcik z używaniem surface'ów, popatrz jak działają, wtedy będziesz wiedział, co zrobić tutaj.
  9. W d3d_draw_block nie da się ustawić osobnej tekstury dla każdej ściany. Jeśli chcesz stworzyć nowego sprite'a z kawałka istniejącego, rysujesz go na surface'u i używasz funkcji sprite_create_from_surface z odpowiednimi parametrami, tak powstałego sprite'a możesz wykorzystać jako teksturę dla swojego sześcianu.
  10. Natomiast ja szukam gry, której tytuł, autora znam, ale jakby zniknęła z Internetu - Tank Tournament, znalazłem ją na którejś płycie CD-Action sprzed 2003 roku, ale płyta jest już bezużyteczna. Gra Marcina Gardyjana, oczywiście z Polski. Chyba że ktoś zna grę podobną do opisywanej, też będzie ok.
  11. Skoro funkcja przyjmuje argumenty od 0 do 1, to szukany x = t/sprite_get_[width\height, szerokość lub wysokość](spr) przy czym t jest twoją współrzędną, np. 16 lub 32
  12. Em, wystarczy chyba zmienić odpowiednie argumenty w funkcjach. Oczywiście zależy, czy te funkcje mają jakieś argumenty odpowiadające używanemu fragmentowi tekstury. Mówisz o funkcjach z GM-a, czy z jakiegoś silnika?
  13. Zalecam zapoznanie się z rozdziałem w dokumentacji "Advanced Drawing Functions" w "Game Graphics".
  14. Rzekłbym, że ciemniejszy zielony powinien być ciut ciemniejszy.
  15. Niezła technologia (ciężko uwierzyć, że surface ma 128x128), ale bardzo biednie z contentem (jedna broń? jedna tekstura?) i toporne sterowanie, nieintuicyjne imo.
  16. Na Twoim obrazku w zakładce "views" i w kodzie ustawiasz hborder i vborder na 64. Nie wiem, czy to coś poprawi, ale daj zamiast tego duże liczby (np. 1000, ogólnie liczby większe od odpowiednio view_wview i view_hview). nevermind
  17. Praktycznie wszystkie stałe znajdują się w dokumentacji. Można dodać swoją, Ctrl+Shift+N lub Resources -> Define Constants... Stałych możesz używać w Create, nie możesz ich jedynie tworzyć w czasie gry, zamiast tego możesz zrobić zmienną global.zmienna, która będzie tylko trzymała wartość, póki jej nie zmienisz w kodzie (a nie zmienisz, skoro chcesz, żeby była to stała).
  18. Nikt nie powiedział, że nie mogą. To tylko ograniczenie dla początkujących, żeby ułatwić im robienie swych pierwszych gierek.
  19. Zmienne view_ ustawiasz po przejsciu z rooma, czy przed? W tym drugim wypadku zmienne resetują się i ustawiają tak, jak są w zakładce "views" następnego rooma. Nie wiem, jaki to rodzaj gry, może dałoby się to w jakiś sposób obejść bez korzystania ze zmiennych.
  20. @Trzynasty: poczytaj dokumentację, potem się wypowiadaj @szmalu: sprawdź, czy będzie działać, gdy view_wview i view_wport ustawisz na szerokość rooma (32+32*global.lvl), analogicznie z view_hview i view_hport.
  21. Amaterasu

    Spiffy Goats

    lol'd Fajna koza. wg tłumacza Google "spiffy" znaczy również "wypucowane miejsca na trasie"
  22. "Zlikwidowawszy" = "likwidując" E: mniej więcej równe
  23. Amaterasu

    Galeria Grafik

    Twój awatar przyprawia mnie o drgawki, nie wiem czy to tak miało być, czy co.
×
×
  • Dodaj nową pozycję...