Skocz do zawartości

SimianVirus7

Użytkownicy
  • Postów

    236
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    20

Ostatnia wygrana SimianVirus7 w dniu 9 Sierpnia 2021

Użytkownicy przyznają SimianVirus7 punkty reputacji!

1 obserwujący

O SimianVirus7

  • Urodziny 15.11.1997

Informacje

  • Użytkownik GameMaker Studio 2
    Tak
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Tak
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Użytkownik Godot
    Nie

O mnie

Ostatnie wizyty

7802 wyświetleń profilu

Osiągnięcia SimianVirus7

  1. Patrzyłeś lerp()? Czyli coś w stylu aktualne = lerp(aktualne, docelowe, 0.5) //0.5 - siła z jaką ma obracać
  2. Faktycznie pierwszy filmik wyjaśnił nieco zasadę działania, z dalszych mniej rozumiem ale sprawdzałem na szybko. Jak przysiądę w weekend to dam znać co ogarnąłem.
  3. Dzień Dobry, Robiąc prototyp użyłem wbudowanego w gm algorytmu a* i działa świetnie ale chciałbym dodać do gry drogi, które przyspieszają poruszanie się. Wyczytałem, że do tego najlepiej wykorzystać algorytm dijkstry ale nie potrafię nic z tego zrozumieć. Znaczy, zamysł i ogólną mechanikę tak, ale jak już zakodować to średnio. Jestem na samym początku, czyli tworzę grid (16x16) i przypisuje w komórki wartości. Wartości są minusowe, bo ma wybierać drogę o najmniejszej ilości ruchu (punktów). Trawa: -1 Droga: -3 Kamień: 100 Generalnie ma to wyglądać tak, że ma wybierać, czy iść drogą, czy szybciej będzie "na szage" przez trawę, czy może kawałek przez trawę, żeby dojść do drogi i po niej kontynuować do celu. Wiem tyle, że każda kratka ma porównywać punkty z kratką sąsiednią i wybierać najmniejszą wagę. Nie studiowałem, więc takie algorytmy są mi kompletnie obce, a w technikum mieliśmy tylko graf który łączył kilka punktów, a nie cały macierz. (Wiem, że na necie jest kilka poradników, ale też nie bardzo się w nich odnajduje)
  4. To może mieć zmienną np. doJump = false; i zrobić collision_line na te kilka pixeli w dół od gracza i jeśli wykrywa podłoże oraz vspd > 0 to daje doJump = true; a w kodzie zamieścić coś takiego if (PresskeyJump or doJump) && jumps>0 { image_index=0; if jumps>1 vspd = -jspd;else vspd = -jspd*.8; jumps-=1; // doJump = false; }
  5. Nigdy nie grałem w gry typu Visual Novel, nigdy nie miałem zamiaru zagrać w gry typu Visual Novel, bo po prostu mnie nie pociągały, tym bardziej nigdy bym nie pomyślał, że tego typu gra może mnie wciągnąć, a wciągnęła 😮 Serio, nawet dzisiaj w robocie o niej myślałem 😄 Początek był nudny i chciałem już wyłączyć (pewnie przez moje sceptyczne podejście), ale później główna bohaterka zasiadła na tronie i gra dopiero się zaczęła. To może zapiszę w postaci plusów i minusów, tak będzie szybciej i klarowniej. + Charyzmatyczna bohaterka (zdziwiłem się, że po tak krótkim czasie, postać z gry indie, może zyskać sympatie w oczach gracza) + udźwiękowienie, efekty dźwiękowe w dialogach (nie wiem, czy to reguła w grach VN, ale spodobała mi się ta koncepcja) + fabuła (zawsze myślałem, że VN kręci się wokół romansów, a tu proszę, intryga i do tego ciekawa) + postać Erica(?) 😛 +- grafika (nad wyraz prosta ale spójna i ta spójność do mnie przemawia) - mam wrażenie, że interfejs jest trochę surowy - brak trybu pełnoekranowego w wersji Windows (no chyba, że ctrl + caps lock + enter, ale to takie trochę "wymuszone" rozwiązanie 😛) - nie wiedziałem, że można grę zapisać przez większość czasu, później odkryłem, że jest w opcjach, więc może gdzieś ten przycisk dać na widoku. Ogólnie, rewelacja!
  6. SimianVirus7

    Opera GX Game Jam

    Mnie osobiście podobało się "Nettie & Settie Save The Internet", ale tak jak Gnysek mówi, to ma za długie intro. Gdyby to wyrzucić i dać samą rozgrywkę to całkiem całkiem. Mnie generalnie już nie pasowały gry które miały menu, powinny startować od razu w trybie jednego gracza, a drugi powinien mieć możliwość dołączenia w każdej chwili.
  7. Kod na pierwszy rzut oka wygląda dobrze. Dwie sprawy: 1) Prawdopodobnie twój pierwszy dźwięk po prostu ma cisze na końcu i pomimo, że nic nie słychać to on wciąż jest odtwarzany - dlatego słyszysz to opóźnienie. Albo w drugą stronę, twój drugi dźwięk ma cisze na samym początku. Możesz swój plik dźwiękowy wrzucić w darmowy program Audacity i zobaczyć długość utworu i jaka jest jego "budowa". 2) Z tego co pamiętam game maker nie potrafi odtwarzać dwóch dźwięków mp3 na raz. Jedynie w formacie ogg i wav jest taka możliwość. Aczkolwiek to nie powinno być problemem akurat w tej konkretnej sytuacji, napisałem to tak żebyś wiedział na przyszłość. Ps: = przypisuje wartość do zmiennej == porównuje wartości (stosowane w if'ach) Wiem, że tak czy siak będzie działać ale fajnie wyuczyć się dobrego nawyku
  8. Zależnie od sytuacji, rozwiązań jest kilka. Ja np. do odtwarzania muzyki w tle wykorzystywałem kolejki. // ------------ CREATE ------------ // sounds = ds_queue_create(); //Stwórz kolejke z utworami mediaplayer = noone; //Stwórz odtwarzacz tej kolejki ds_queue_enqueue(sounds, Sound1, Sound2); //Przypisz dźwięki do kolejki // ------------ STEP ------------ // //jeśli mediaplayer nie odtwarza muzyki oraz kolejka posiada elementów więcej niż zero if(!audio_is_playing(mediaplayer) and ds_queue_size(sounds)>0) { //przypisz mediaplayer dźwięk i jednocześnie usuń go z kolejki mediaplayer = ds_queue_dequeue(sounds); //odtwórz przypisany dźwięk audio_play_sound(mediaplayer, true, false); } // (Opcjonalnie) // jeśli kolejka odegra wszystkie przypisane dźwięki, przypisz jej nowe if(ds_queue_size(sounds) == 0) { ds_queue_enqueue(sounds, Sound3, Sound4); //Przypisz dźwięki do kolejki } // ------------ DESTROY ------------ // //Zwolnij pamięć gdy obiekt zostanie zniszczony ds_queue_destroy(sounds);
  9. SimianVirus7

    Opera GX Game Jam

    Zaskakujące jak niektórzy są kreatywni. Tyle gier, jeden temat, a tyle możliwości.
  10. Porozrzucałem wszędzie te granaty, kombinowałem z nimi, wrzucałem je tam gdzie ten błąd mi wcześniej wystąpił i... no i git, nic się złego nie dzieje (tzn. ludzie umierają od wybuchu, a tak to wszystko w porządku). Czy można jakoś restartować grę oprócz alt+f4? strasznie to uciążliwe jest
  11. Gtx 970, i7-8600 (z ciekawych rzeczy to mam dx12 ready ale żadna gra z dx12 mi nie odpala)
  12. Zrobiłem dzisiaj swój pierwszy system cząsteczek (tak wiem, tyle lat w gm'ie a ja dopiero cząsteczki tknąłem :P). Mam pytanie. Przy pewnej zmiennej cząsteczki mają zmienić swój kierunek lotu. Czy można już istniejącym cząsteczkom cokolwiek modyfikować? Z tego co czytałem, to nie. Na razie pasuje mi rozwiązanie typu part_particles_clear(pSystem) i zastąpienie ich nowymi ale cząsteczki znikają momentalnie, a chciałbym, żeby alpha najpierw zleciała do zera, coś jakby funkcja miała nazywać się part_particles_clear_with_alpha(pSystem) Ktoś ma na to radę?
  13. Po wybuchu granatu zostaję efekt rozbłysku na obiektach i dosłownie razi w oczy Tutaj wybuchł z 15 sekund temu. Jest to na samym początku w jakimś barze. Podoba mi się mordobicie ziomków jak się ich chwyci 😆
  14. 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ć)
  15. 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ł.
×
×
  • Dodaj nową pozycję...