-
Postów
4 891 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
53
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez I am Lord
-
Wyszukiwanie obiektu po zmiennej, foldery, zapisywanie
I am Lord odpowiedział(a) na Shumix temat w Pytania początkujących
Pogrupuj to do 1 modelu i wyświetlaj go. -
Wyszukiwanie obiektu po zmiennej, foldery, zapisywanie
I am Lord odpowiedział(a) na Shumix temat w Pytania początkujących
- Wyłączamy światła aby HUD się nie cieniował pod jego wpływem. - ustawiamy hidden na false, na wszelki wypadek ( zwykle nie jest potrzebne ) - ustawiamy projekcję ortho - ustawiamy kolor biały by kolorki HUDa były poprawne - rysujemy HUDa - przywracamy wszystko GML d3d_set_lighting(false); d3d_set_hidden(false); d3d_set_projection_ortho(0,0,view_wport,view_hport,0); draw_set_color($FFFFFF); draw_text(10,10,string(fps)); d3d_set_hidden(true); d3d_set_lighting(true); -
Wyszukiwanie obiektu po zmiennej, foldery, zapisywanie
I am Lord odpowiedział(a) na Shumix temat w Pytania początkujących
A no to przed rysowaniem musisz zmienić projekcję na orto narysować i zmienić z powrotem na perspektywę. I jak mnie pamięć nie myli to obiekt rysujący musi mieć najmniejszy depth. Bo inaczej Hud ci się schowa za obiektami 3D. -
Nie przetestowałem ale powinno działać GML (skrypt) //create_outside_view( obiekt, numer_viewa ) return instance_create( choose( random_range( 0, view_xview[argument1] ), random_range( view_xview[argument1] + view_wview[argument1], room_width )), choose( random_range( 0, view_yview[argument1] ), random_range( view_yview[argument1] + view_hview[argument1], room_height )), argument0 );
-
W evencie room end zatrzymujesz muzykę a w room start grasz nową.
-
Wyszukiwanie obiektu po zmiennej, foldery, zapisywanie
I am Lord odpowiedział(a) na Shumix temat w Pytania początkujących
po przejściu w 3d użyj GML draw_set_color( $FFFFFF ); wyłącz też światła jak żadnych nie zdefiniowałeś: GML d3d_set_lighting( 0 ) ponad to projekcja musi mieć większy depth niż rysowane obiekty -
Wrog podarza za graczem i patrzy sie w strone w ktora idzie.
I am Lord odpowiedział(a) na SKiD temat w Pytania początkujących
W funkcji draw_sprite_ext w parametrze kąta dajesz dla głowy direction. -
Może jakaś teamowa walka z lwami. Lwy były by kontrolowane przez AI. Były by np. 4 teamy po 2 graczy i by ze sobą rywalizowały oto kto zabił najwięcej lwów. Można było by też przeszkadzać przeciwnikom :P
-
To chyba miało by wyglądać jak plazma guny z dooma czy quake. A tam są takie połączenia i wyszło dobrze.
-
Mógłbyś w opcjach dać możliwość zmiany sterowania na takie jak chce Morro, mi też to obecne się nie podoba. Takie sterowanie jak to które już masz robi się wtedy kiedy kamera zmienia obrót razem z obrotem postaci. edit: przyczepię się też do muzyki, mogła by się nie resetować po wyjściu z każdego rooma.
-
Sprawdza odległość pomiędzy ścianą a graczem, na tego podstawie można zwiększać i zmniejszać zasięg latarki. Odległość możesz sprawdzić np tym algorytmem https://gmclan.org/index.php?czytajart=74 na dole w komentarzach snake zrobił przykład. Lub ( mniej optymalne ) wysyłać w pętli wiązkę tak długo aż zetknie się ze ścianą. ( poszukaj przykładów laserów )
-
Odwrotne kierunki myszki w 3D i kolizje
I am Lord odpowiedział(a) na Morti temat w Pytania początkujących
Lol racja <face palm> -
Odwrotne kierunki myszki w 3D i kolizje
I am Lord odpowiedział(a) na Morti temat w Pytania początkujących
No w sumie to w tym konkretnym przypadku faktycznie powinno być add i identity bo prawdopodobnie przetransformuje mu jeszcze projekcję chyba że przed drawem projekcji wklei identity. Tak czy siak warto mieć na uwadze czym set i add się różni bo wiedząc to można zoptymalizować grę. edit: taki mały przykład prosto z mojej gry jak optymalnie stosować set i add kiedy musimy wyświetlić 2 modele naraz: GML d3d_transform_add_scaling(0.75, 0.75, 0.75); d3d_transform_add_rotation_z(dirXY + 270); d3d_transform_add_translation(x,y,z); d3d_model_draw(global.model_tank[0],0,0,0,background_get_texture(bg_tex_tank_dol)); d3d_transform_set_scaling(0.75, 0.75, 0.75); d3d_transform_add_rotation_z(dirXY + 90 ); d3d_transform_add_translation(x,y,z); d3d_model_draw(global.model_tank[1],0,0,0,background_get_texture(bg_tex_tank_dol)); d3d_transform_set_identity(); Można tutaj zauważyć że d3d_transform_set_identity(); jest użyte tylko raz, mogłem tak zrobić bo seta dałem w scaling 2 modelu ( oszczędność na wywołaniu 1 funkcji ) -
Odwrotne kierunki myszki w 3D i kolizje
I am Lord odpowiedział(a) na Morti temat w Pytania początkujących
W tym przypadku jak jest tylko jeden transform to wystarczy użyć seta i bez końcowego identity. Różnica pomiędzy set a add jest taka że set to połączenie 2 funkcji: d3d_transform_set_identity() oraz d3d_transform_* a add jest poprostu: d3d_transform_* bez identity na początku. czyli: GML d3d_transform_set_identity() d3d_transform_add_translation(x,y,z)//Jak nie masz zmiennej "Z" to daj tam 0 d3d_draw_ellipsoid (-25,-25,25, 25,25,-25,background_get_texture(texturka1),1,1,24) //Tak wiem zmieniłem pivot point na środek</span></span> będzie tym samym co: ( tylko optymalniejsze bo oszczędzamy na 1 wywołaniu ) GML d3d_transform_set_translation(x,y,z)//Jak nie masz zmiennej "Z" to daj tam 0 d3d_draw_ellipsoid (-25,-25,25, 25,25,-25,background_get_texture(texturka1),1,1,24) //Tak wiem zmieniłem pivot point na środek</span></span> a z kolei: GML d3d_transform_set_translation(x,y,z)//Jak nie masz zmiennej "Z" to daj tam 0 d3d_draw_ellipsoid (-25,-25,25, 25,25,-25,background_get_texture(texturka1),1,1,24) //Tak wiem zmieniłem pivot point na środek d3d_transform_set_identity() będzie nieoptymalne bo set_identity wykona się podwójnie. raz na początku i raz na końcu. -
Ale ten sposób jest do bani bo tak robi zwykła funkcja save/load. Do pliku z savem zapisujesz tylko te zmienne, tych obiektów, które są ważne np. pozycja gracza, wszelkie jego statystyki, zmienne globalne, pozycje potworów i ich hp itp. A nie wszystkie obiekty i wszystkie ich zmienne.
-
Utrata życia po zeskoczeniu z wyższej odległości
I am Lord odpowiedział(a) na Frixon temat w Pytania początkujących
Zakładając że twoja grawitacja jest równa 1 to pionowa prędkość vspeed musiała by być większa od 16 by cokolwiek się stało. Przy grawitacji 0.25 vspeed musiał by być większy od 8. Kod umieść w stepie. -
Przecież napisałem ci krok po kroku. pod bron_karabin i bron_pistolet NIC NIE MASZ PODSTAWIAĆ to są stałe zdefiniowane pod shift+crtl+n https://gmclan.org/up539_12_zmiana_broni__v2_.html
-
Jakie znowu współrzędne spritów? Masz wpisać tylko nazwę spritów w tablicach GML // wprowadzamy sprity broni sprit_broni[ bron_pistolet ] = sprite2; sprit_broni[ bron_karabin ] = sprite1;
-
Do create dodajesz kolejną tablicę, robisz tak za każdym razem jak chcesz dodać jakąś nową właściwość do broni np. rozrzut itp. teraz akurat będzie to informacja o tym jaki sprit dana broń ma mieć GML (create) // wprowadzamy sprity broni sprit_broni[ bron_pistolet ] = sprite2; sprit_broni[ bron_karabin ] = sprite1; No i wystarczy dorobić rysowanie tej że broni w draw: GML (draw) // rysujemy bron if ( aktywna_bron != 0 ) { draw_sprite_ext( sprit_broni[ aktywna_bron ], 0, x, y, 1, 1, dir, -1, 1 ); } To było by tak najprościej. warunek if ( aktywna_bron != 0 ) jest tu dlatego że nie ma sprita dla "braku broni" no ale jak chcesz go dodać to nie ma problemu ( np. puste ręce bez broni ) to wtedy wywalasz ten warunek i dopisujesz nowy sprit sprit_broni[ 0 ] = sprite3;
-
zmiana sprita podczas obracania sie
I am Lord odpowiedział(a) na Elevator temat w Pytania początkujących
Bo złączyłeś ze sobą elseimage_xscale=-1; i GM potraktował to jako nowa zmienna a nie element składni ifa -
zmiana sprita podczas obracania sie
I am Lord odpowiedział(a) na Elevator temat w Pytania początkujących
if direction>90 and direction<270 then image_index=sprite1 ten powyższy obrazek jest niezgodny z GMem 360° / 0° E 90° N 180° W 270° S -
Polski zespół black metalowy zrobił remiksa własnego utworu i powstał z tego industrial :P
-
Czy ty tego naprawdę nie widzisz? Jest nawet stosowny komentarz w tym miejscu: GML (gracz step) // strzelanie ------------------------------------- // jezeli mamy wybrana jakas bron, wcisniemy LPM i bron jest zaladowana if ( mouse_check_button( mb_left ) && zaladowane ) { // sprawdzamy ktora bron jest aktywna switch ( aktywna_bron ) { case bron_pistolet: var _inst; _inst = instance_create( x, y, kula ); // tworzymy pocisk _inst.direction = dir; // nadajemy mu kierunek lotu _inst.speed = 10; // nadajemy mu predkosci zaladowane = false; // nie mozna juz strzelac dopuki bron zostanie ponownie naladowana alarm[0] = szybkosc_broni[ aktywna_bron ]; // odpalamy czas po ktorym bron bedzie mogla znowu strzelac break; case bron_karabin: var _inst; _inst = instance_create( x, y, kula ); _inst.direction = dir; _inst.speed = 15; zaladowane = false; alarm[0] = szybkosc_broni[ aktywna_bron ]; break; }; }
-
Nie byłem pewny czy masz wersję pro. Więc nie robiłem obrotu. Zmień w postaci: GML (draw) // rysujemy gracza draw_sprite( sprite_index, image_index, x, y ); na GML (draw) // rysujemy gracza dir = point_direction( x, y, mouse_x, mouse_y ); draw_sprite_ext( sprite_index, image_index, x, y, 1, 1, dir, -1, 1 ); teraz dla optymalizacji można wywalić sprawdzanie konta pocisku podczas strzału bo i tak już będzie się sprawdzać co stepa. Czyli zamienić var _dir, _inst; na var _inst; wywalić całkowicie linie niżej z point_direction i zmienić _inst.direction = _dir; na _inst.direction = dir;
-
W taki sposób można uzyskać tylko efekt blura i do tego tylko na full screenie. Dając porty mocno mniejsze niż szerokość i wys viewa, jeżeli w opcjach zaznaczysz 'Full scale'. No ale jak mówię w oknie to nie zadziała. Edit: No chyba żeby coś pokombinować z funkcjami od okna np. window_set_size(w,h). Zmniejszyć okno ustawieniami portów i potem okno jakoś powiększyć funkcjami window_*