Skocz do zawartości

SimianVirus7

Użytkownicy
  • Postów

    232
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    20

Ostatnia wygrana SimianVirus7 w dniu 9 Sierpnia

Użytkownicy przyznają SimianVirus7 punkty reputacji!

1 obserwujący

O SimianVirus7

  • Urodziny 15.11.1997

Contact Methods

  • Website URL
    https://narkoleptyk.itch.io

Previous Fields

  • 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
  • Uytkownik Godot
    Nie

Profile Fields

  • Skąd
    Leszno

Ostatnie wizyty

7490 wyświetleń profilu

SimianVirus7 Osiągnięcia

  1. 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!
  2. 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.
  3. 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
  4. 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);
  5. SimianVirus7

    Opera GX Game Jam

    Zaskakujące jak niektórzy są kreatywni. Tyle gier, jeden temat, a tyle możliwości.
  6. 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
  7. Gtx 970, i7-8600 (z ciekawych rzeczy to mam dx12 ready ale żadna gra z dx12 mi nie odpala)
  8. 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ę?
  9. 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 😆
  10. 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ć)
  11. 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ł.
  12. 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)
  13. Używa się tego w gmie? Oprócz szyfrowania to nie widzę zastosowań.
  14. Tak, tam jest błąd. Ten argument7 przeszkadza. Plus, ten kod działa w miarę ok tylko wtedy, kiedy grubość konturu nie przekracza liczby 2. Po przekroczeniu tej wartości kontur ma braki w rogach, bo rysuje on tylko góra/dół, lewo/prawo. Niemniej plusem jest wydajność, bo zawiera tylko 5 kroków kodu. Najprościej będzie to zrobić for'em, z rysowaniem 360 stopni. Nie wiem jak z wydajnością tego, tutaj starzy wyjadacze mogą się wypowiedzieć. Jakby nie było, jest tutaj 361 kroków do wykonania. Myślę, że jeśli chodzi o optymalizacje, to najlepiej shadery, ale tego jeszcze nie potrafię. for(var i=0; i<360; i++) { draw_set_colour(_coloroutline); draw_text_ext_transformed(_x + lengthdir_x(_strong, i), _y + lengthdir_y(_strong, i), _text, _sep, _w, _xscale, _yscale, _angle); } draw_set_colour(_colortext); draw_text_ext_transformed(_x, _y, _text, _sep, _w, _xscale, _yscale, _angle);
  15. Co oznacza operator >>? W dokumentacji napisane, że przesuwa w prawo albo w lewo, a w praktyce jak to wygląda? To to samo co x-=5? mp_grid_add_cell(grid, x>>5, y>>5);
×
×
  • Dodaj nową pozycję...