-
Postów
9 812 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
141
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez gnysek
-
Mi się podobała broń w Killzone czy Black, bo w przeciwieństwie do PCtowych strzelanek gdzie biegasz z prędkością rozpędzonego auta i strzelasz z karabinu z jednej ręki, tam broń jest ciężka, masywna i powolna. Zrobili to tak, że mimo iż to tylko obrazki wyświetlane na monitorze, fizycznie w dłoniach czujesz, że coś dźwigasz. Kto grał w Alien Territory Borka pamięta, że jak się rzuciło granatem, czy strzelało z shotguna, to był odpowiedni odrzut, wstrząs ekranu, latające magzynki i odłamki itd. i mimo, ze to gra 2D z widokiem z góry to też było czuć pewien ciężar.
-
Ale znalazłeś tam coś dobrego chociaż ? Bo nie wiem czy odwzorowanie oznacza, że sam próbowałeś, czy skorzystałeś z kodu.
-
Trzy małe problemy z drabiną
gnysek odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Widzę kilkanaście razy place_meeting(x,y,par_drabina), dlaczego nie przypiszesz tego do jakiejś zmiennej (tymczasowej), oraz nie wrzucisz w jeden warunek wszystkiego, co wymaga, aby ten warunek był spełniony? to by zwiększyło czytelność kodu, może wtedy znajdziesz swój błąd, zobacz: //bohater juz nie spada z drabiny if place_meeting(x,y,par_drabina) { zejsciezdrabiny = false; if (key_check(key.down)) { zejsciezdrabiny = true; } //bohater kiedy zetknie sie z ziemia //obj_podloze to puszcza drabine if (drabina = true && place_meeting(x,y+2,obj_podloze)) { drabina = false; } if (place_meeting(x,y-32,par_drabina) && place_meeting(x,y+1,par_drabina) && czas <= 0 && (key_check(key.up) || zejsciezdrabiny)) { drabina = true; vspd = 0; hspd = 0; } } //Ruch po drabinie if drabina == true { var __hsign = key_check(key.right) - key_check(key.left); var __vsign = key_check(key.down) - key_check(key.up); hspd = min(max(hspd+__hsign,-2),2); vspd = min(max(vspd+__vsign*2,-4),4); if __vsign == -1 && !place_meeting(x,y-100,par_drabina) { drabina = false; vspd = -10; } if __hsign != 0 { image_xscale = __hsign; } if !_na_drabinie || !place_meeting(x,y+32,par_drabina) { drabina = false; } } Poza tym, chyba nie pozostaje nic innego jak sobie za pomoca draw wyświetlać na ekranie wartości wszystkich zmiennych których używasz i wtedy zobaczyć, co w momencie gdy masz złą grafikę jest ustawione i będziesz wiedzieć, jaki przypadek obejść. Inaczej - trochę ciężko to będzie rozwiazać, bo to już jest problem mający w zależnościach wiele innych danych z gry których nie mamy i zrobiło się nieco zbyt kompleksowo. -
draw_sprite_tiled ?
-
Trzy małe problemy z drabiną
gnysek odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Yep, to generalnie nie jest proste zagadnienie i wymaga ściany kodu, więc ciężko się taki problem rozwiązuje. Trzeba spojrzeć szerzej, zajrzeć w projekt itd. Ja niestety aż tyle czasu nie znajdę, jak jakiś mam, to staram się naprowadzać -
Trzy małe problemy z drabiną
gnysek odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Trochę za duzo kodu do analizy, nie chce mi się przyglądać. Ale na drugi problem to bym dodał sprawdzanie czy drabina jest pod bohaterem i kilka pikseli wyżej, to powinno załatwić sprawę. -
Tak, bo rysujesz go na jego Y, potem dodajesz pozycję y_view, wiec jak masz ekran o wysokości 800px i zjedziesz 800px w dół widokiem no to oczywiste, że poza ekran całość wyjechała, a potem jeszcze dodajesz y playera. Nie widzę prostszego sposobu, niż kartka papieru, długopis i napisanie sobie tych wszystkich 3 wartości, żeby wiedzieć co wyszło na koniec i dlaczego jest poza ekranem.
-
Jeśli chcesz względem gracza, to trzeba dodać jakąś liczbę dotyczącą gracza, a tego tutaj nie widzę. Np.: draw_sprite(...., view_yview[0] + obj_player.y / 2);
-
Dziwna ta mgła, wygląda, jakby część była pod wodą.
-
W ogóle nie rozumiem co mówisz. Strzelam, że chcesz uzyskać paralaksę, tzn. każde tło przesuwa się w innym tempie względem gracza. Mam nadzieję ze nie poruszasz wartością y tego tła, tylko samo view_yview[0] się zmienia?
-
Jak wykryć nowe linie w stringu?
gnysek odpowiedział(a) na MetalowyNerd temat w Pytania zaawansowanych
Zadziała każda czcionka monospace, np. Courier New, Lucida Console, Consolas itp. Nie możesz łamać tylko przed kolejną spacją, bo jak słowo jest dłuższe niż maks. szerokość, to nigdy nie złamie, gdzieś musi być na twardo A samo łamanie jest w skrypcie który podałem w moim pierwszym poście. Wystarczy przerobić kod, zeby zamiast łamać przypisywał do kolejnego elementu tablicy. Tu masz moją konsolę: https://marketplace.yoyogames.com/assets/2444/in-game-console -
Jak wykryć nowe linie w stringu?
gnysek odpowiedział(a) na MetalowyNerd temat w Pytania zaawansowanych
ja tak teraz jeszcze dodam, ze ogólnie to konsola ma zazwyczaj czcionkę o stałej szerokości, więc dzielenie na kolejne linijki jeśli można tekst łamać w dowolnym miejscu jest dziecinnie proste i łatwo to do tablicy przypisać, bo znasz limit znaków i nie musisz liczyć szerokości/wysokości. -
A gdzie przepraszam sutki? Równouprawnienie jest, leśne stwory też mogą być kobiece!
-
Jak wykryć nowe linie w stringu?
gnysek odpowiedział(a) na MetalowyNerd temat w Pytania zaawansowanych
Generalnie to się nie da. Ale można podejść do tego inaczej. Najpierw złamać tekst, a wtedy policzyć linie. Do tego jest już gotowy customowy skrypt: https://www.gmlscripts.com/script/string_wordwrap string_wordwrap(string,length,break,split) - string to tekst, length to długość, break to znak łamania, a split to true/false czy łamać słowa w połowie. -
Jak ustawić głębie na background tak jak ustawia się to na obiekcie GMS 1.4
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
Tło jest zawsze "w tle" (background), ewentualnie na "pierwszym planie" (foreground). Jak chcesz mieć pomiędzy obiektami w grze, to już nie jest tło Wtedy musisz użyć obiektu i np. draw_sprite_tiled, zależnie co chce uzyskać. -
Napis nad obiektem kiedy się do niego zbliżam dla obiektu niewidocznego na planszy
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
Ustaw żeby był widoczny i usuń draw_self, bo jak rozumiem, to przeszkadza ? nie da się rysować niewidocznej rzeczy. Jak nie chcesz wyświetlać sprite, to albo nie ustawiaj sprite, albo w create ustaw go na -1, albo dodaj event draw (to już masz) i nie dawaj draw_self(). -
No to jest już matematyka z podstawówki, odwróć znak + na - przy vy + (mouse_y - my)
-
@Kewin Wszystko w kodzie się zgadza, pewnie użyłeś zwykłego eventu mouse left pressed/down, zamiast global mouse left pressed/down. Proszę, oto gotowy przykład (podzieliłem tylko w camera set view różnicę przez 2, wolniej wtedy kamera się przesuwa 2x): https://gmclan.org/up23_18_camera_drag.html
-
Jestem w pracy, na linuxie, nie ma szans na razie
-
Podpowiedz jaka wersja GMS, sprawdzę btw. już widzę, że dla GMS1 powinno być np.view_x[0] więc jakieś błędy były
-
Generalnie nie ma różnicy czy palcem czy myszką. Proces nie jest taki trudny i dotyczy ogólnie przesuwania czegoś w grze, oczywiście piszę z głowy wiec musisz przetestować i dostroić, mogłem pomylić plusy i minusy w drugiej części: W Create tworzysz zmienne, które przetrzymują pozycje myszki i kamery gdy zaczynaliśmy przesuwanie mx = 0; my = 0; vx = 0; vy = 0; W mouse button pressed: mx = mouse_x; my = mouse_y; vx = <view_x>; // (zależnie czy GMS1 czy 2 to będzie view_x[0] albo camera_get_view_x(view_camera[0]); vy = <view_y>; // jak wyżej W mouse button down: GMS 1: view_x = vx + (mouse_x - mx); view_y = vy + (mouse_y - my); GMS2: camera_set_view_pos(view_camera[0], vx + (mouse_x - mx), vy + (mouse_y - my)); I to wszystko. Oczywiście można próbować to jakoś upłynnić, dodać zwiększanie prędkości przesuwania itp., no ale to już jest znacznie, znacznie więcej roboty.
-
Teraz to już umrze dopiero jak ja umrę
-
Jedyna nagroda przewidziana to talon. Na balon. Na więcej nie starczy
-
O ile zgodzę się, że do zapisania liczby czasem ini_write_string jest lepszy (sam tak robię, bo dla liczb całkowitych wtedy nie zapisuje się .00000), to do wczytania musi być ini_read_real (GM sobie świetnie radzi z ich odczytaniem, mimo, że jak zapisuje liczby to dodaje cudzysłów - przy odczycie nie musi go być, to jest pewnie dla zapewnienia kompatybilności).
-
Zdecydowanie brakuje im cienia, nawet takiego okrągłego pod nogami. Przez to wyglądają nieco lewitująco.