-
Postów
2 911 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
14
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Threef
-
W sumie jeżeli potrzeba tylko sprawdzić czy pomieszczenie jest zamknięte i nie ma wyjścia to można to zrobić przy pomocy A* (mp_grid) GML grid = mp_grid_create(0, 0, room_width / 32, room_height /32, 32, 32) mp_grid_add_instances(grid, obj_Wall, 1); if(mp_grid_path(id, path, xstart, ystart, xgoal, ygoal, allowdiag)) { // jest przejście } else { // Nie ma przejścia } mp_grid_destroy(grid);
-
Ja jeszcze dodam że ten algorytm nazywa się "Flood fill" jakby ktoś chciał szukać na ten temat więcej informacji.
-
Hej! W zeszłym roku oglądałem jeszcze Ash vs Evil Dead przy którym świetnie się bawiłem. Rewelacyjnie zrealizowany. Masa sztucznej krwi i ujowej fabuły i świetnych wymuszonych żartów. 50-60 letni główny bohater Ash przypadkiem na haju uwalnia zło zawarte w Necronomiconie które sam tam kiedyś zamknął. Bierze shotguna i piłę łańcuchową i idzie ponownie powstrzymać zło. W sumie to te pierwsze 4 minuty filmu już potrafią zachęcić albo zniechęcić: https://youtu.be/WpvGofOA5yE
-
Ostatnio pokazywałem same transformacje. A dziś dla zabawy spróbowałem dodać perspektywę. Wygląda o wiele przyjemniej dla oka, ale oczywiście muszę brać pod uwagę inną pozycję kursora przy przyciskach etc. No i widać lekko jest zbugowane też. Jakby ktoś nie widział to pierwsze 5 sekund to zwykły tryb 2D, a kolejne 5 sekund to tryb 3D
-
Jeżeli nie pomyliłeś działu to odpowiedź brzmi: nie rób tego. GameMaker nie wspiera 3D w żaden sposób poza rysowaniem poligonów i kamerą. Nie ma sprawdzania kolizji 3D, wszystkie kolizje są dalej 2D. Nie ma cieni. Są tylko podstawowe światła. Nie ma animacji modeli. W ogóle nie ma modeli. GM "modelem" nazywa zbiór poligonów. Nie da się od tak po prostu wczytać modelu z Maya albo Blenera bo trzeba go przerobić na instrukcje GameMakera.
-
Myślę że styl graficzny bardzo przyjemny dla oka, ale styl walki fatalny. Broń trzyma jakby szturchał biedaka z dżumą, a nie szykował się do ataku.
-
Dlatego przed próbą skończenie pierwszej gry powinieneś dwukrotnie już przeczytać całą dokumentację i porzucić już cztery inne projekty. Funkcje jakie będą Ci potrzebne to różne funkcje sprawdzania kolizji w różnych warunkach: place_meeting() position_meeting collision_line() collision_rectangle() point_in_triangle() Oraz funkcje matematyczne od kątów i odległości: point_distance() point_direction() angle_difference() dot_product() Do tego podstawowe porównywanie zmiennych lokalnych: x y speed direction vspeed Oczywiście twoje AI musi jakoś wybierać swój cel (czasami będzie tylko jedne czyli twój gracz): instance_find() instance_number(). Są instance_furthest() i instance_nearest() ale radzę zacząć przygodę od pomyślenia samemu nad jakimś algorytmem który znajdzie najbliższy albo spełniający inne warunki cel. Pozdrawiam i życzę dobrej zabawy bo czeka cię jej dużo.
-
by the way... TWD dzieje się w Stanach a coś i tak mało broni palnej jest dostępnej. W sumie wojsko mogło rekwirować co popadnie, no ale zwykły amerykanin ma w szafce 3 gnaty :| A zwykły sklep z bronią na południu który jest w co trzeciej mieścinie ma tyle broni że starczyłoby dla każdego. Amunicja już byłaby większym problemem, ale każdy powinien mieć przy sobie Remingtona Edit: W zeszłym tygodniu był 5 epizod 4 sezonu Vikings. Rewelacyjny. Dobrze się ten sezon zapowiada.
-
Skończył się internet. To oznacza że nie będzie streamów do końca miesiąca. :P
-
Dawaj fejsa, bo lubię a nie lubię więc coś nie halo!
-
W sumie też se zrobię taką grę. Edit: Nie pamiętam żebym wczoraj pisał ten komentarz...
-
jak podłożyć pod sprita obiekt z innym spritem?
Threef odpowiedział(a) na Pręcik temat w Pytania początkujących
Amaterasu trochę dużo pomieszałeś. Ten skrypt będzie działać, ale nie tak jak opisałeś. Argument też jest zbędny. Wystarczy samo sprawdzanie rysowania i zmiana tryb=0 tryb=1 -
Nie zrobiłem. Jedyny sprawdzany Warunek jest taki że dobra kropka nie może być za blisko złych. To jest pierwszy gameplay jaki wpadł mi do głowy: ogon maleje po kolizji ze złymi. Więc przegrywasz gdy dobra kropka zostanie otoczona przez złe i nie masz jak do niej dojść. Drugi rodzaj gameplayu, który teraz kończę, prowadzi gracza po ścieżce która zawsze jest możliwa i gracz będzie przegrywał w momencie gdy nie trafi w kropkę.
-
Klon snake. ~20 godzin roboty. W sumie chyba mogę dać betę komuś jak chce na priv.
-
dodawanie się do listy spritów, kiedy zostaną stworzone
Threef odpowiedział(a) na Pręcik temat w Pytania początkujących
No to teraz rozdziel to i przed przypisaniem sprawdzaj czy istnieją. -
dodawanie się do listy spritów, kiedy zostaną stworzone
Threef odpowiedział(a) na Pręcik temat w Pytania początkujących
Coś takiego nie będzie działać bo to jest warunek logiczny. Musiałbyś zrobić tak: GML if ds_list_find_value (global.lista, q)= 0 or ds_list_find_value (global.lista, q)=4 or ds_list_find_value (global.lista, q)=8 A czegoś takiego nie rób bo to durne. Wyciągnij z nich wspólne elementy i na tym działaj. Wszystkie liczby są podzielne przez 4, ale kolejne warunki zwiększają się o jeden. Więc: (liczba mod 4)+numer Tylko że tak tego nie rób. Ty zupełnie od złej strony do tego pochodzisz. Prawdopodobnie nie potrzebujesz żadnych list ale musiałbyś dokładnie opisać czego potrzebujesz żebyśmy pomogli dokładnie. Na razie rozwiązanie twojego problemu to: GML for(var i=0; i<55; i++) { ds_list_add(global.lista,i) if(i mod 4=0) {ds_list_add(global.lista_d,i} if(i mod 4=1) {ds_list_add(global.lista_s,i} if(i mod 4=2) {ds_list_add(global.lista_w,i} if(i mod 4=3) {ds_list_add(global.lista_z,i} } -
Jak zrobić Hbor i Vbor które ustawia się w zakładce view room editora? Chodzi o odstęp jaki wybrany obiekt/punkt powinien utrzymać od kamery. Coś bardzo banalnego, ale głowa mnie dziś boli i chcę to jeszcze dziś skończyć. -_- Ustalmy sobie zmienne GML Hbor=200 Vbor=130 player.x=8746 player.y=7613 view_xview[0]=clamp(view_xview[0],???,???) view_yview[0]=clamp(view_yview[0],???,???) Edit: Bardzo dużo czasu mi to zabrało. Gdyby ktoś szukał: GML view_xview[0]=clamp(view_xview[0],o_player.x-view_wview[0]-Hbor,o_player.x-Hbor) view_yview[0]=clamp(view_yview[0],o_player.y-view_hview[0]-Vbor,o_player.y-Vbor)
-
No ale Cinders też mieli w shoutcase
-
Moja gra nie miała nic. Tylko rysował się okręg przez minutę. Nie było nic. Tylko jedna minuta. ;) Z tym zakończeniem trollowałem. Można zakończyć grę czekając minutę, albo zamknąć krzyżykiem. Ot, dwa zakończenia!
-
Wiesiek na najniższych?
-
Pisałem że nic nie zrobię, ale coś tam zrobiłem w 30 minut. Wytłumaczę się że to coś ma 2 zakończenia. Nie chcę zdradzić jakie jest drugie ukryte. Powinienem jakąś analitykę podłączyć żeby sprawdzić ile osób się domyśli.
-
To jest ranga zależna od doświadczenia na forum.
-
GML d3d_transform_set_identity() d3d_transform_add_rotation_y(-90-_scroll*90) d3d_transform_add_translation(x,y,0) draw_sprite(kartka,-1,0,0) d3d_transform_set_identity() Dla _scroll w zakresie <-1,1> Chociaż najprostsze rozwiązanie to zmiana image_xscale, ale wtedy są ogromne problemy z rysowaniem czegoś na tej kartce. ;) Edit: Tak podałem kod ale nic nie wyjaśniłem? To są funkcje do transformacji 3D, ale działają one również dla 2D. To co ja tam robię to po kolei: Wyzerowanie macierzy Zmiana kąta Y pod jakim będą rysowane grafiki Ustawienie aby rysowane były na pozycji X, Y, 0 Narysowanie na pozycji 0,0,0 Wyzerowanie macierzy żeby reszta była normalnie Te wszystkie funkcje sprawiają że ustawia się jakby parametry dla przyszłego rysowania.
-
Ja mam teraz grafikę. Moja idlówka zmienia formę: http://gfycat.com/InfamousPerfectAntarcticfurseal Gfycat popsuł się i nie umiem ścieżki do gifa.
-
Ja to najczęściej robię tak: GML direction-=angle_difference(direction,point_direction(x,y,obj_player.x,obj_player.y))/4 W ten sposób jest w miarę naturalnie. Postać zawsze obraca się tyle samo czasu nie ważnie w jakim kierunku.