Skocz do zawartości

Cała aktywność

Kanał aktualizowany automatycznie     

  1. Wczoraj
  2. feeling przy strzelaniu

    Tutaj gość fajnie opisuje jak wygląda dobry dźwięk broni, z mojej strony dodam że ważny jest zawsze rozbłysk wokół strzelającego na podłodze i (w innych rzutach) na ścianach.
  3. Ostatni tydzień
  4. feeling przy strzelaniu

    Coś tu nie gra... Jako stary wujek GMClanu mający wiele ciężkich projektów na karku dam Ci radę Jeżeli sam nie czujesz gameplay'u, to tego po prostu nie rób, spróbuj zrobić może inny projekt? Sprawa jest prosta, dobra gra musi wyjść w całości od Ciebie, a z tego co widzę, to próbujesz się posiłkować informacjami jak ma wyglądać Twoja gra. Ja jak robiłem "Alien Territory" ( strzelanka multiplayer - top down ), to nikogo się nie pytałem, tylko robiłem tak, jak chciałem żeby było. To Ty masz czuć tę grę, robisz ją taką w jaką chciałbyś grać, nigdy nie rób gier pod kogoś. Oczywiście opinia innych jest bardzo ważna, ale opieraj się na opinii jak już coś stworzysz, a nie jak zaczynasz tworzyć. Jednak odpowiadając stricte na Twoje pytanie, możliwości jest kilka. W top down nie jest łatwo o efekt strzelania, bo możemy manipulować tylko kamerą przy odrzucie broni podczas strzelania. Pamiętaj jednak, że trzęsienie kamery musi być delikatne, bo graczy zacznie to męczyć, bardzo dużą rolę odgrywają dźwięki, spadające i turlające się łuski ( odbijające od ścian np. ), ogień z lufy ( losowy ), trochę dymu, postać musi mieć lekki odrzut ( tylko żeby się nie cofała bez sensownie, a raczej wizualnie ) itp. Możesz zastosować lekkie oddalenie lub przybliżenie kamery podczas strzelania, albo po prostu przed strzelaniem lekki zoom kiedy gracz próbuje celować prawym przyciskiem myszki. Generalnie musisz to poczuć, kombinuj dodając różne efekty i zobacz czy Ci się podoba, w którą iść stronę, czy efektów nie jest za dużo lub za mało, zainspiruj się innymi grami, niekoniecznie 2D. Ja pamiętam, że nad efektem uderzania kul o ścianę pracowałem ok. 2 tygodni Non stop coś poprawiałem i mi nie pasowało, ale robiłem do skutku aż w pewnym momencie siadłem... i stwierdziłem... tak! to jest to
  5. feeling przy strzelaniu

    właśnie problem w tym, że nie wiem co jest dobre. W gry nie gram już od hoho a teraz trendy są inne niż 20 late temu. Od strony technicznej mam silnik zrobiony raczej i teraz zabieram się za ten cały "feeling i jusicy" i zaczynają się schody. Nie wiem nawet jaki rodzaj kamery zrobić? gracz w centrum, czy kamera po okręgu dookoła gracza a wartość promienia stała? czy centrum między pozycją celownika a pozycją gracza? jak teraz się te topdowny w skrócie robi bo ja to sie na Crimsonlandzie zatrzymałem
  6. o sporo tego;-) kodu.... Ja też będę robił swój system zmiany broni..ale to na razie w planach.
  7. Projekt jest w gms 1.4? Jak tak możesz mi podesłać na pw to looknę
  8. Otóż mam system zmiany broni.. Powiedzmy,że prawie działa.Już mówię w czym problem.. Gracz ma do dyspozycji kilka rodzai broni w tym przypadku jest ich 5. jedna z nich jest broń którą ma przy sobie zawsze i jest nieograniczona..więc pozostałe cztery bronie są do zdobycia i mają ograniczoną ilość amunicji.. Żeby gracz otrzymał daną broń dodatkową musi ją sobie znaleźć na planszach.. Wtedy jak znajdzie,to ta broń automatycznie doda się do niego wraz z ilością amunicji jaka jest w kodzie przydzielona.. I teraz tak..problem polega na tym,że mimo,że gracz odnajduje broń dodatkową na planszy to i tak jej nie ma.. widzę tylko,że zmienia się w gui sprite na tą dodatkową broń,ale nadal nie może z niej strzelać.. Nie wiem gdzie jest błąd..czemu mimo implementacji w create broni dodatkowej i w kolizji gracza,gdzie wskazuje w obiekcie jaka broń ma mu się dodać to z tej broni nie można strzelac.. specjalnie zdublowałem ten sam kod na broń co podstawowa z różnica taką,że zmieniłem sprita,żeby się nie pomylić.. Tak jakby czegoś brakowało,że mimo zdobycia broni dodatkowej nie mogę z niej strzelać.. Proszę pomóżcie mi...może wam szybciej pójdzie wyłapanie błędu.. moje pomysły się wyczerpały.. edit..Gnysek przepraszam,że i do Ciebie na PM napisałem...pomyślałem,że jak rzadko tu zaglądasz to zapewne szybciej odczytasz wiadomość prywatną.. obj_player create have = true; ammo = 10; firerate = 15; dmg_min = 3; dmg_max = 5; obj_player step ////Bohater atakuje (nowy kod uproszczony) czas-- var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(ord('X')) && czas <= 0 && global.wep[cur,e_wep.ammo] > 0{ czas = global.wep[cur,e_wep.firerate]; global.wep[cur,e_wep.ammo]-=1; var ins = instance_create(x, y-17, obj_kula); //bron podstawowa ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); } obj_skrzyniazbronia tu kolizja z graczem(jak najedzie na skrzynie to dostaje tą broń i amunicje) //bron laser global.wep[1,e_wep.have] = true; global.wep[1,e_wep.ammo] += 30; obj_kontroler_gry naciśnięcie przycisku S for(var i=0;i<weapons_total;i++) if keyboard_check_pressed(ord("s")+i) if global.wep[i,e_wep.have] current_weapon = i; Teraz tak tu obj_kontroler_gry perssistent który zawsze w grze towarzyszy.. obj_kontroler_gry Create enum e_wep { have,ammo,firerate,dmg_min,dmg_max } enum e_gun { kulki,laser,strzelba,miotacz,bazooka } current_weapon = 0; weapons_total = 5; var i = 0; //bron kulki global.wep[0, e_wep.have] = false; global.wep[0 ,e_wep.ammo] = 100; //nieograniczona w stepie jest kod na to global.wep[0 ,e_wep.firerate] = 5; global.wep[0 ,e_wep.dmg_min] = 3; global.wep[0 ,e_wep.dmg_max] = 5; //bron laser global.wep[1, e_wep.have] = false; global.wep[1 ,e_wep.ammo] = 30; global.wep[1 ,e_wep.firerate] = 10; global.wep[1 ,e_wep.dmg_min] = 3; global.wep[1 ,e_wep.dmg_max] = 5; //bron strzelba global.wep[2, e_wep.have] = false; global.wep[2 ,e_wep.ammo] = 20; global.wep[2 ,e_wep.firerate] = 15; global.wep[2 ,e_wep.dmg_min] = 3; global.wep[2 ,e_wep.dmg_max] = 5; //bron miotacz global.wep[3, e_wep.have] = false; global.wep[3 ,e_wep.ammo] = 10; global.wep[3 ,e_wep.firerate] = 20; global.wep[3 ,e_wep.dmg_min] = 3; global.wep[3 ,e_wep.dmg_max] = 5; //bron bazooka global.wep[4, e_wep.have] = false; global.wep[4 ,e_wep.ammo] = 5; global.wep[4 ,e_wep.firerate] = 25; global.wep[4 ,e_wep.dmg_min] = 3; global.wep[4 ,e_wep.dmg_max] = 5; obj_kontroler_gry Draw GUI var box_width = sprite_get_width(mask_explosion); //how wide is each box that will display a weapon? for (var i = 0; i < weapons_total; i ++){ draw_x = i * box_width; draw_y = 0; //rysowanie sprite od góry do lewej //jeśli posiadamy obraz każdej broni w tym samym duszku, możemy narysować je wszystkie za pomocą "i" if ( global.wep[i,e_wep.have] == true ) draw_sprite(spr_bron, i, draw_x, draw_y); } tu dodałem jeszcze w dodatkowej broni w create taki wpis obj_laser (broń ma taki sam kod co broń podstawowa różni się tylko spritem) create //bron nr 1 zaczynając indeskacje od 0 gdzie 0 to bron podstawowa kulki gun = e_gun.laser;
  9. feeling przy strzelaniu

    Ale znalazłeś tam coś dobrego chociaż ? Bo nie wiem czy odwzorowanie oznacza, że sam próbowałeś, czy skorzystałeś z kodu.
  10. próbuję zrobić fajny feeling przy strzelaniu do gry top down. kombinuję z "shake screenem", view_anglem, zoomem viewa, ale zamiast feelingu wychodzi mi taki rozdrażniacz i rozpraszacz :/ macie jakieś praktyczne rady? funkcje których warto użyć? (GMS1.4) sprawdzone sposoby? patrzyłem też na yt ale dalej nie umiem odwzorować nic dobrego.
  11. Nad czym aktualnie pracujesz?

    Ciekawie się to zapowiada
  12. Wcześniej
  13. Nad czym aktualnie pracujesz?

    @Nirvan fajoskie, a robisz jakieś systemy do tego żeby automatycznie się poruszał do celu itd.? Mój projekt tymczasem poszedł w stronę losowania map i generalnie bardziej survivalowej rozgrywki, czyli nie typowa skradanka jak chciałem, tylko coś z szybką akcją i ekscentrycznym, ekstrawaganckim settingiem. Celem jest przejście z jednego końca mapy na drugi, osiągając po drodze jak największą korzyść (może trochę jak w Escape From Tarkov). Zabijanie, skradanie się, walki z bossami, zbieranie rzeczy. Chciałbym połączyć jakoś strzelanie z muzyką żeby całość dawała lekko Hotline Miami'owe wrażenie.
  14. Trzy małe problemy z drabiną

    Zdecydowanie czytelniej...zgadzam się z Tobą... Ciężko do pewnych nawyków się przyzwyczaić i cały czas nad tym pracuję. Wyłapałem w inny sposób błąd.A mianowicie co się dzieje kiedy bohater kiedy zejdzie z drabiny dotknie stałego podłoża/gruntu.. A mianowicie był przez ułamek sekundy zatrzymany w miejscu tak jakby ktoś go trzymał. Ten kod naprawia ten problem if __vsign == 1 && !wPowietrzu { drabina = false; } Ok udało Mi się też zlokalizować przyczynę dlaczego nie mogłem ustawić sprita idealnie jak schodzi po drabinie. Temat do zamknięcia.. Przyczyną była zmienna vspd musiałem zwiększyć dystans skoku do góry i już jest ok..
  15. Trzy małe problemy z drabiną

    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.
  16. Trzy małe problemy z drabiną

    Dobra... W końcu podgarnołem. Bohater teraz nie spada z drabiny. Ale zostały Mi dwie rzeczy do zrobienia. 1. Bohater jak jest przy drabinie po naciśnięciu przycisku dół chwyta się,ale nie górnej części drabiny tylko nad drabiną.. Dziwnie to wygląda.Mam sprita 128x128 pewnie przez to.. 2. Obj_podloze powoduje zblokowanie na ułamek sekundy sprita bohatera który zejdzie z drabiny i dotknie tego podłoża.. Nie wiem moze trzeba dac jakis warunek żeby sprawdzał podłoże? Jak dotknie gracz po zejściu drabiny obj_podloze. Kod teraz wygląda tak Create Zejsciezdrabiny = false; //bohater juz nie spada z drabiny if place_meeting(x,y,par_drabina) && key_check(key.down) { zejsciezdrabiny = true; } if place_meeting(x,y,par_drabina) { zejsciezdrabiny = false; } //bohater kiedy zetknie sie z ziemia //obj_podloze to puszcza drabine if place_meeting(x,y,par_drabina) && drabina = true && place_meeting(x,y+2,obj_podloze) { drabina = false; } if place_meeting(x,y,par_drabina) && 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 !place_meeting(x,y,par_drabina) || !place_meeting(x,y+32,par_drabina) { drabina = false; } } Czy ktoś z was mógłby Mi pomóc z tymi dwoma wyżej rzeczami? Dziękuję.
  17. Nad czym aktualnie pracujesz?

    Nowa wersja mojego look animatora, prawie 2 miesiące odświeżałem : d
  18. Dwa pytania...obiekty jako tła

    Zrobione;-) temat do zamknięcia;-) Użyłem funkcji draw_sprite oraz sprite_get_width. Dziękuję wszystkim za pomoc.
  19. Dwa pytania...obiekty jako tła

    A draw_sprite_tiled nie stworzy mi na scenerii wielu spritów? Myślałem o użyciu funkcji (x-sprite_width,y) i (x+sprite_width,y) ale nie mam na to pomysłu... Brak też na sieci dobrego przykładu.Są odnośnie Backgroundów,ale obiektów które udają parallaxe ciężko znaleźć. Kurcze żeby ten obiekt nie musiał być tłem pierwszoplanowym(foreground) to nie byłoby takiej z tym zabawy, Nie mogę go użyć jako tła(background) bo zasłania mi jeden obiekt który ma być odkryty..no i taka zabawa z tym jest...
  20. Dwa pytania...obiekty jako tła

    draw_sprite_tiled ?
  21. Dwa pytania...obiekty jako tła

    Mam pytanie... chcę uzyskać efekt parallaxy w taki sposób,że jak idę graczem w lewo to trawa przesuwa się w prawo i tak samo jak idę graczem w prawo to trawa przesuwa się w lewo. Powiedzmy,że prawie udało się... Ale problem polega na tym,że Mi ten obiekt trawa ucieka..lub zaczyna się gdzieś indziej.. view mam obecnie ustawiony na 1280x720 Proszę o pomoc...fajny jest ten efekt,ale nie wiem kurcze jak ten obiekt ustawić żeby nie kończył się z żadnej strony... różne wartości wpisywałem i nic to nie daje.. draw draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]*-0.2 ,y+view_yview[0] + obj_player.y /-1.5)
  22. Trzy małe problemy z drabiną

    W porządku:-) Do kolegi wyżej napisałem. Pogrzebałem troche w kodzie i udało mi się rozwiązać problem ze spadającą drabiną.. Stworzyłem zmienna w create Coś takiego trzymaniesiedrabiny = false; Następnie w Stepie wywaliłem przy drabinie dół i dałem tą zmienną. I w końcu w Stepie dałem żeby zmienna przy drabinie i przycisku dół była false a potem true:-) Nie spada bohater ale jak zejde z drabiny i jestem na dole na solidzie to chwile sprite bohatera jest jakby przez coś trzymany..Mogę nogani przebierać..ale coś go trzyma przez chwile..i w końcu może chodzić i wszystko zaczyna działać..
  23. Trzy małe problemy z drabiną

    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ć
  24. Trzy małe problemy z drabiną

    Dobrze już piszę na priv do Ciebie
  25. Trzy małe problemy z drabiną

    ojeju najlepiej napisz to od nowa albo dawaj na priv
  26. Trzy małe problemy z drabiną

    Jednak moje szczęście nie trwało długo.. Wyzbyłem się platformy którą nakładam na drabinie w celu stałego podłoża aby sprite bohatera nie spadł z górnej krawędzi drabiny. Teraz kiedy jest sama drabina,to w chwili kiedy znajdę się bohaterem na górze drabiny to naciskając przycisk dół to spada bohater. Próbowałem użyć gravity...ale coś źle robię.. Proszę was o pomoc..jak na podstawie wyżej kodu ustawić aby gracz nie spadał z górnej krawędzi drabiny. I naciskając przycisk dół dłużej lub krócej od razu chwytał się górnej krawędzi drabiny.. Dziękuję za każdą pomoc...sugestie..
  27. Dwa pytania...obiekty jako tła

    Rozwiązałem problem;-) okazało się,że źle dobierałem wartości.. Zamiast +2 powinno być -2 czyli tak Draw draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]* 0.8 ,y+view_yview[0] + obj_player.y /-2) Dziękuję jeszcze raz za pomoc;-) Gnysek.
  28. Trzy małe problemy z drabiną

    Dziękuję za sugestie. Problem 1 udało Mi się wczoraj naprawić oraz w połowie Problem 2 W pierwszym przypadku wystarczyło ustawić wartość inną wartość Y z +5 na +1 Podobnie jak w przypadku 2.Tu problem okazał się dość banalny. Wartość y ustawiłem z-32 na -100 Teraz bohater kiedy wejdzie na drabinie to na jej szczycie kończy animacje i zmienia swój stan na sprite stojącego. Tu zostało Mi do ustawienia bohatera w drugą stronę czyli bohater schodzący z drabiny. Otóż..kiedy próbuje zejść bohaterem z drabiny to jego sprite zaczyna schodzić nie od szczytu drabiny tylko o pare punktów wyżej.. Mówiąc wprost i jaśniej..kiedy jestem nad drabiną to w chwili kiedy nacisnę kursor dół to bohater powiniem złapać się górnej krawędzi drabiny.. A teraz on znacznie wyżej łapie się drabiny.. Ciężko Mi to ustawić...siedzę już 2 dzień nad tym. Moje pomysły wyczerpały się... Próbowałem w opcjach roomu zmienić wartość hsp i vsp z -1 na 15. Generalnie to pomogło teraz ekran nie przeskakuje uporczywie jak próbuje zejść po drabinie..Sprite płynnie zmienia swoje położenie...od razu łapie się górnej granicy drabiny. Mimo to te rozwiązanie nie do końca jest dobre,ponieważ mam na planszy ruchome obiekty i teraz te obiekty nie nadążają za graczem. Może jest inny sposób żeby ustawić sprite bohatera jak jest nad drabiną że przy naciśnięciu przycisku dół od razu chwytał górną część drabiny. //Drabina if place_meeting(x,y,par_drabina) && place_meeting(x,y-32,par_drabina) && place_meeting(x,y+1,par_drabina) && czas <= 0 && (key_check(key.up) || key_check(key.down)) { 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 !place_meeting(x,y,par_drabina) || !place_meeting(x,y+32,par_drabina) { drabina = false; } }
  1. Pokaż więcej aktywności
×