Skocz do zawartości

Cała aktywność

Kanał aktualizowany automatycznie

  1. Ostatni tydzień
  2. Samo się naprawiło po aktualizacji, oby się nie zepsuło z następną...
  3. A teraz projekcik na gamejam :d Kunio Kun/Goal 3 z nesa inspirowane https://www.reddit.com/r/Unity3D/comments/ooyarm/why_its_so_fun_watching_ai_playing_with_ai_d_mini/ Edit: Można już pograć przez przeglądarkę na itch.io https://fylyp93.itch.io/polska-mistrzem-polski?fbclid=IwAR0pl5L7MSFe5BHSEMOWKHt2kpKnWkokz7BefSjQHlvJ5s0xl7IUtW2NnE4
  4. Rozwiązanie jakie ja używam u siebie w jednym projekcie to stworzenie zaokrąglanego nie zamkniętego path dla pocisku. Punkt początkowy i końcowy mamy. Wystarczy dodać pomiędzy nimi jeszcze jeden punkt w x = mean( x1, x2 ) i y = mean( y1, y2 )-50 Pocisk będzie podążał po path całkiem ładnym łukiem
  5. Cóż, chyba już wiem o co Ci chodzi. Ja zrobiłem to samo w swojej grze, czyli, że pocisk ma lecieć w miejsce w którym gracz był, kiedy był wystrzelony czar. Dla osiągnięcia takiego efektu, stworzyłem osobny obiekt "oTarget". Pojawiał się on podczas strzału w miejscu gracza i do niego odwoływał się pocisk przy obliczaniu x,y (w górnym przykładzie, wylicza on dystans odwołując się do oPlayer.x/oPlayer.y); Mniej więcej tak wyglądałby pseudokod: if(strzal == true) { var _target = instance_create(oPlayer.x, oPlayer.y, oTarget) //wpisuje go do zmiennej, żeby nim manipulować var _pocisk = instance_create(x, y, oPocisk); _pocisk.target_x = _target.x; //przypisz dla pocisku współrzędną x celu _pocisk.target_y = _target.y; //przypisz dla pocisku współrzędną y celu } i wtedy każde wyliczenia odwołują się do target_x/target_y a nie do oPlayer.x/oPlayer.y U siebie dodałem jeszcze, że jak pocisk ma kolizje z oTarget (tym przypisanym), to traci prędkość i znika po czasie. Efekt wyszedł taki: (Obiekt oTarget nie ma sprite, dlatego go nie widać)
  6. Hej @SimianVirus7. Po pierwsze dziękuję, za szybką odpowiedź. Naturalnie, post z 2018 widziałem, zamierzam cały wątek prześledzić dokładniej i wyciągnąć wnioski. Zasadniczo to w sumie o efekt lotu parabolicznego mi chodziło, z tym jednak zastrzeżeniem, że oEnemy porusza się ze stałą prędkością po path'ie. Boję się więc, że 'kula' będzie śledziła non stop wrogi obiekt i w konsekwencji tor lotu pocisku przypominać będzie odwróconą literę 'U', ale z jedną dużo dłuższą połową
  7. No witam! Jeśli chodzi Ci mniej więcej o taki efekt: To miałem to samo pytanie w 2018r. Zrobiłem to za pomocą Konrada-GM i mój kod wyglądał mniej więcej tak: CREATE pocisku: ///Caly kod inicjializacji strzelania // wirtualna pozycja do wyliczenia "wygiecia" ghost_x = x //to jest tak naprawde xstart ghost_y = y //to jest tak naprawde ystart ale później będzie manipulacja tych dwóch zmiennych // strona lotu czaru // 1 - prawa strona // -1 - lewa strona var _pd = point_direction(x, y, oPlayer.x, oPlayer.y); if(_pd > 90 and _pd < 270) wing = -1 else wing = 1 //prawo lub lewo // poczatkowy dystans do celu start_distance = point_distance(xstart, ystart, oPlayer.x, oPlayer.y); //wybierz czy pocisk ma leciec gora czy dolem way = choose(true, false); STEP pocisku: // liczymy aktualna odleglosc var distance = point_distance(ghost_x, ghost_y, oPlayer.x, oPlayer.y); var angle = point_direction(ghost_x, ghost_y, oPlayer.x, oPlayer.y); var angle90 = angle + 90 * wing; //90 - sila zagiecia // glowna funkcja przesuniecia var factor = sin((distance / start_distance) * pi); var maxlen = sqr(log2(start_distance)); var offx = lengthdir_x(maxlen * factor, angle90); var offy = lengthdir_y(maxlen * factor, angle90); // poruszamy obiektem w kierunku celu var spd = irandom(7)+2; ghost_x += lengthdir_x(spd, angle); ghost_y += lengthdir_y(spd, angle); // Zaginamy if(way) //w=true leci gora { x = ghost_x + offx; y = ghost_y + offy; } else //w=false leci dolem { x = ghost_x - offx; y = ghost_y - offy; } Jeżeli chcesz obszernego wytłumaczenia, to poczytaj odpowiedź od @Konrad-GM, bo nieźle mi to wtedy wytłumaczył.
  8. Wcześniejsza
  9. Czołem, dzień dobry! Zwracam się z prośbą o pomoc w 'ugryzieniu' tematu. Sytuacja wygląda następująco: W głównym Roomie' mam wyrysowany path po którym poruszają się 2 typy wrogów (oEnemy, oEnemySecondary). Dla uproszczenia możemy pominąć kwestię rozpoznawania który jest który. Ponadto, na ścieżce mam do wyboru ( ilość postawionych uzależniona od ilości monet) dwa rodzaje wież (oTower,oTower2) które 'strzelają' dwoma różnymi typami pocisków (oBullet, oBulletSecondary). Każda z instancji Enemies po utraceniu swoich 'punktów życia', 'znika' ( instance_destroy() ). Mechanizm wykrywania i strzelania do przeciwników rozwiązałem tak: Jak wyraźnie widać na załączonym wyżej przykładzie, kwestia namierzania i strzelania opiera się głównie na metodzie instance_nearest() oraz point_distance(). Same zaś enemies poruszają się po path: I tu pojawia się moje pytanie. Czy jest jakiś sposób aby 'kula' (oBullet) po wystrzale zamiast lecieć 'prosto do celu', leciała do góry po parabolli. Tak jak jest np. prowadzony 'ogień' z haubicy. Pozdrawiam.
  10. No też cały czas mam w głowię walkę z utopcami Ta gierka ma być trochę taki PRL Punk :d inspiracja Darkwoodem mocno
  11. Bardzo mi się skojarzyło z wiedźminem I, zabrakło tylko ikonki combosów na kursorze
  12. Ostatnie dwa dni pracowałem sobie nad prototypem walki, aktualnie jest w takiej formie
  13. Bardzo dziękuję za tak miłe słowa , z pewnością będą mnie jeszcze bardziej motywować , gdy tylko ukończę wspomnianego Seida kontynuuję pracę nad Pac Man Revenge 5 , dołożę wszelkich starań aby projekt wyszedł jak najlepiej i by grający w nią gracze byli ciekawi co będzie dalej i by fabuła była ciekawa a gra grywalna
  14. Ta gra mi się podoba bardziej niż Seid.
  15. To i ja wrzucę filmik z gry na której będę się skupiał po ukończeniu Seid-Znalezisko Remake , póki co filmik który przedstawia sam początek rozgrywki o fabule pisałem już na Discord , jeżeli ktoś nie widział zapraszam
  16. Może to jest właśnie to, czego potrzebuje, bo zwykle nie kończę swoich gier. Co do filmiku to wygląda mega klimatycznie i trochę creepy szczególnie z tymi gibającym się "cosiem" w tle i rykiem... jelenia? Ja wykorzystałem gm'a do trochę innych celów, mianowicie do przedstawienia graficznego statusu anteny radiowej, wszystko utrzymane w klimatach rpgowych Będąc u klienta program automatycznie łączy się z anteną i spisuje dane. Jest to trochę przekłamanie, że robi to gm, bo robi to python, który po protokole tcp wysyła dane do gm'a a ten je ładnie przedstawia. Sztuka dla sztuki, tak myślę. (C# mnie drażni, a python jest tekstowy... zwykle)
  17. Fajnie, ta wstępna wersja wygląda graficznie lepiej, niż zapowiedź Abandoned o którym ostatnio było mnóstwo szumu
  18. Ja bym skorzystał z jakiegoś dostępnego w sieci przykładu, na pewno są z trampoliną czy skrzynką od której można się odbijać, i to bym wziął za bazę.
  19. Pomysł u źródła był żeby Sapon był grą 3D + że będą zbroje z wszystkiego co się da, np. zbroja z kapusty możliwe i że kiedyś wrócę do projektu :d
  20. Niezłe ale ja czekam dalej aż skończysz ten projekt 😐
  21. Dzięki, mam twittera ale chyba pechowo trochę, bo zazwyczaj to z 8 wyświetleń, na reddicie za to dużo więcej A teraz zrobiłem od zera tryb dnia i nocy + zmienne warunki pogodowe. Robiłem długo jeden projekt ale stwierdziłem że będę robił około 3 tylko przeskakiwał z jednego na drugi żeby się nie wypalać przy jednym, są podobne do siebie pod względem mechanik więc jak robię rzeczy do jednego to jest równocześnie progress w pozostałych dwóch
  22. Gnysku,a jakby to wszystko wyrzucić z trampoliny i na nowo stworzyć ten kod. Jakbyś zaproponował swoje rozwiązanie?
  23. Sutikku

    checkpoint - 2021

    W ramach odświeżenia tematu robię nowy checkpoint - już po maturce, całkiem fajne wyniki, poniekąd za namową ludzi stąd oraz mojego nowego szefa złożyłem papiery na informatykę zaocznie.
  24. Dostępna jest co najmniej od GameMakera 5.0, bo pamiętam ją jeszcze z tutoriali platgormówi drag'n'drop z 2003 roku, gdy zaczynałem przygodę z GameMakerem. Nie bardzo rozumiem ten kod. Nie wiem dlaczego kod od skoku jest w trampolinie, a nie w obiekcie postaci, do tego: - player_bounce nigdy się nie zmienia, wiec jak rozumiem ten warunek jest zawsze spełniony - jeśli par_entity to jest to co skacze na trampolinie, to jak spadnie, zawsze będzie jej dotykać, wiec i ten warunek jest spełniony - jak dla mnie zatem zawsze spełnione są oba warunku i zawsze ustawiasz hspeed i vspeed Wydaje mi sie, że kod jest zupełnie nie w tym miejscu, a to czy trampolina jest pod graczem czy nie, powinno być uwzględniane tam, gdzie jest kod od zwykłego skakania (o ile takowy w ogóle jest). Btw. dlaczego normalna grawitacja to 1, a nie 0? Np. domyślne GMowe gravity przecież jak ma wartość większą od 1, to dodaje do x i y: lengthdir_x/y(gravity, gravity_direction), wiec tylko 0 powoduje ustanie grawitacji.
  25. Co do funkcji move_contact_solid to widzę,że ona jest tylko dostępna w gms 2x chyba,że się mylę Ok testuje...dałem warunek zaraz za wybiciem się gracza z trampoliny i zrobiłem to po with aby mieć pewność,że odwołam się do par_entity i jednak nie chce resetować mi dalej grawitacji do wartości domyślnych. kod wygląda tak obj_trampolina step if player_can_bounce == true && place_meeting(x,y,par_entity) { with instance_place(x,y,par_entity) { g = 0.5; //poczatek spowolnionej animacji hspd = lengthdir_x(1,other.image_angle+25)*other.pwr; vspd = lengthdir_y(1,other.image_angle+25)*other.pwr; if !place_free(x, y+1) and inAir = false { g = 1; //resetowanie grawitacji } } }
  26. Bardzo możliwe, aczkolwiek polecam też używanie move_contact_solid lub jakąś pętlę while, zeby idealnie o 1px dotknąć podłoża.
  27. Słusznie to jest za dużo kodu do analizowania.Nawet nie ma takiej potrzeby. Przyszedł Mi do głowy taki pomysł. A jakby dodać warunek if !place_free(x, y+1) and inAir = false { g = 1; //resetowanie grawitacji } i ustawić go w step trampoliny ale w części gdzie używa się with par_entity to odwoływałby się bezpośrednio do tej instancji.
  1. Pokaż więcej elementów aktywności
×
×
  • Dodaj nową pozycję...