Skocz do zawartości

Threef

Moderatorzy
  • Postów

    2 911
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    14

Treść opublikowana przez Threef

  1. Dane zostają pobrane dopiero po chwili. Przedtem zmienna (a dokładnie całe ds_map) nie istnieje. Przypisuj do jakiejś zmiennej.
  2. Threef

    2 Guys 1 Gun

    Yep! Bo dodałem tylko żeby można było skipnąć. Nie jest to gra na klawiaturę, bo nawet klawisze się blokują. ;) Nie ma nawet przypisanych klawiszy do wyboru i używania skilli. :P Thx. Nie czaję co z krwią. xD Shit. Nie usunąłem opcji debugowej. btw dziwnie że uznałeś że skacze się klawiszem HOME. xD Pojedyncze exe z GM:S jest przeze mnie znienawidzone, bo tak naprawdę rozpakowuje pliki do tempu a potem ich nie usuwa. Potem zostają tam na zawsze bo nawet o nich nie wiesz. Instalka wydaje się bardziej "profesjonalna" niż zip który trzeba wypakować. Sorry ale tak już jest.
  3. Threef

    2 Guys 1 Gun

    Nazwa już raz była zmieniona. ;) Zdecydowanie zostaniemy przy tej bo to skojarzenie bardzo nam pasuje do gry. :P Ale już mamy anegdotkę na ten temat. Mam ustawiony Google Alert który przysyła mi email gdy ktoś napisze jakiś artykuł albo post zawierający słowa "2 Guys 1 Gun". Jak dotąd nikt nie pisał nic o grze (bo nie rozsyłamy info, duh), ale wiem że ostatnio pojawiły się w sieci filmy "3 Guys 1 Girl" albo "2 Guys 1 Horse"... :crosseyed:
  4. Threef

    2 Guys 1 Gun

    Gatunek: Two player twin stick platforming cooperation action sandbox shooter. Opis: 2 Guys 1 Gun miało swój początek podczas Global Game Jam 2015 i od tego czasu jest intensywnie rozwijane. Chaotyczna gra akcji dla dwóch graczy skupiająca się wokół jednego prostego pomysłu: Na graczy została rzucona klątwa i muszą walczyć przy pomocy jednej broni! Mając nadzieję ściągnąć z siebie tę klątwę gracze porwą się na wielu przeciwników zdobywając przy tym dużo umiejętności. Nie. Słowo "dużo" tu nie pasuje... "O ja pie****ę, teraz to przegięliście i nigdy tego !@#$% nie skończycie" umiejętności. Czyli mówimy o liczbie pomiędzy 300 a 700. Gra powstaje od 4 miesięcy i nie odstawiłem jej na przerwę dłuższą niż dwa tygodnie. Update pojawiają się kilka razy w tygodniu i jesteśmy otwarci na propozycje! Nasz cel to wydać tę grę na konsolach. Sprzedajemy ją już w aktualnej fazie postępu, a wszystkie pieniądze idą na ten cel. W najgorszym wypadku gra wyląduje tylko na Steam. Warto wspomnieć że nie pogracie na klawiaturze i myszce. To jest gra na pady. Dodatkowo potrzebny będzie wam drugi gracz, ale dla testów na razie umożliwiliśmy grę jednemu graczowi a nawet klawiaturą, ale potem te opcje znikną. Sterowanie klawiaturą to: WSAD - poruszanie G - Strzał H - Skok T - Rzut broni do drugiego gracza Y - Użycie umiejętności Q/E - zmiana umiejętności Co będzie oferować gra?: Unikatowy gameplay: Coop polegający na rywalizacji Nie poważny tryb fabularny złożony z małych 15-sto minutowych etapów Kilkaset umiejętności do wyboru Łączenie 8 umiejętności we własne buildy: Ninja biegający po ścianach, który atakuje błyskawicami i wraz z rosnącym combo zwiększa swoje obrażenia? Czemu nie! Wybór należy do Ciebie! Tryb aren dla graczy szukających wyzwań Autorzy: Programowanie: Damian 'Threef' Komorowski Grafika: Juliusz Arkadiusz Kaczmarek Muzyka: GRIP Screeny: Pobierz 1.1.18.1 | Dorzuć do skarbonki i pomóż skończyć grę
  5. Waa..? Jedyne co naprawdę jest zauważalne to wskoczenie do portalu, bo wtedy kamera nie zdąża pokazać drugiego. Wszystkie ruchy kamery są związane z położeniem graczy i miejscem w które celują. Do tego dochodzi jeszcze screenshake. Nie wiem czy w porządku jak ekran drga od granatu który eksplodował za ekranem. :/ Ogółem muszę coś zrobić z tym GUI bo tak tego chyba nie mogę zostawić, a grafik się opierdala teraz. Wolę skupić się na grze niż pisać ścianę tekstu, ale zaraz poprawię większe bugi i w końcu dam wam zagrać. :P Dla niecierpliwych: threef.itch.io/2-guys-1-gun
  6. image_index co step jest zwiększany o image_speed, a gdy image_index jest większy (i równy?) image_number wtedy jest odejmowane od niego image_number. Teraz znajdź miejsce w którym masz wpisane image_speed=0.3 i zapytaj się czemu tak rzadko wynosi tyle ile myślisz. ;) Mógłbyś spróbować zaokrąglaćif (floor(image_index)=2){akcja} ale wtedy wracasz to starego problemu "karabinu maszynowego". Przeanalizuj to co dałem w poprzednim poście. Za bardzo mieszasz, a rozwiązanie naprawdę jest banalne.
  7. Można to robić w ten sposób. Masz kolizję z kolcami. Event ten powtarza się ciągle gdy jest kolizja. GML if (spiked=false){audio_play_sound(snd_spiked,15,false)} spiked=true Biorąc pod uwagę że zmienna spiked zmienia stan na true dopiero w czasie pierwszego wykonania kolizji i robi to dopiero po sprawdzeniu warunku który ma odgrywać dźwięk, to dźwięk odegra się tylko raz. Oczywiście gdy kolizja już nie zachodzi trzeba przywrócić spiked=false.
  8. Ale jak nie powiedziałeś co w nim poprawić to co mam zrobić?
  9. Gify są świetnym sposobem aby pokazać ruchomy element z naszej gry. Jest wiele sposobów na nagranie tego. Można nagrać gameplay programem jak Fraps i potem wyrenderować go na gif, ale nie polecam tego sposobu. Są specjalne programy do tego jak GifCam czy LICEcap które idealnie się do tego nadają. Problem pojawia się gdy nasz komputer nie może na raz uciągnąć gry i nagrywania. Nawet pojedyncza zgubiona klatka może zepsuć nam całego gifa. Na szczęście mam na to szalony sposób. Będziemy robić w grze screenshoty i z nich zrobimy nasz gif. Screeny Potrzebujemy w grze dodać funkcję która pozwoli nam zrobić kilkaset screenshotów pod rząd. Od razu poczęstuję was sposobem jaki wykorzystałem już kilka razy: GML ///Recording if(keyboard_check_pressed(vk_f6)) { global.recording+=room_speed } if(global.recording!=0) { t=get_timer() zeros=string_repeat("0",18-string_length(string(t))) screen_save("rec_"+string(current_minute)+zeros+string(t)+".png") } global.recording=max(0,global.recording-1) Przejdźmy do tłumaczenia. Pierwszy warunek sprawdza czy został naciśnięty klawisz F6. Klawisz możemy sobie oczywiście zmienić. Za każdym wciśnięciem tego klawisza zwiększamy zmienną global.recording o sekundę, więc naciśnięcie F6 3 razy pozwoli nam zapisać po kolei tyle screenów żeby w sumie wyszły 3 sekundy. Drugi warunek sprawdza czy możemy nagrywać i robi jeden screen. Po wykonaniu warunku wykonywana jest ostatnia linijka która zmniejsza naszą zmienną aż będzie równa 0. Samo zapisywanie screena musi jednak odbyć się wg specjalnych zasad. Po prostu screeny muszą być posegregowane alfabetycznie. Niestety nasze komputery uznają że 15 jest przed 8, dlatego musimy sprawić żeby było to 000015 i 000008. Od tego jest zmienna zeros. Do nazwy screena dodaję także "rec_" i aktualną minutę żeby było mi łatwiej ja znaleźć w folderze. Ogółem można byłoby sobie to jeszcze przerobić żeby zapisywało nam do osobnego folderu, ale nie wiem czy komuś się chce w to bawić. Przygotowanie Screeny zapiszą się w folderze gry w %appdata%. U mnie jest to na przykład: C:\Users\Damian\AppData\Local\2_Guys_1_Gun. Znajdujemy te screeny i przenosimy je do innego folderu. Do tego folderu ściągamy też program o nazwie MEncoder.exe. Nie łatwo jest go znaleźć w internecie. Domyślnie jest on częścią programu MPlayer. Udostępniam wam go do pobrania: https://gmclan.org/up3900_4_mencoder.html To jest też moment w którym możemy dokonać poprawek w naszych screenach. Jeżeli coś wyszło nie tak, może coś chcemy poprawić, zasłonić albo po prostu usunąć, to jest dobry moment. Można najnormalniej usunąć te screeny które nam nie opowiadają. Poza tym zadbajcie żeby nie było więcej niż 10 sekund. Tak długie gify nie są fajne. Rendering Teraz nauczę was magicznego triku w Windowsie który zmieni wasze życia. Obok Windows+M i Windows+E jest to najbardziej przydatny skrót jaki znam. "Shift Click"! Wciskamy shift i klikamy prawym przyciskiem myszy na folder z naszymi screenami. Ukaże wam się kilka nowych opcji w menu, a interesuje nas otwarcie wiersza poleceń. Otwiera nam się konsola. Więc pora na kolejne sztuczki. W CMD nie działają Ctrl+C i Ctrl+V. Wielokrotnie się na tym łapiemy, ale jest sposób na to aby kopiować tekst. Wklejanie tekstu jest proste. Klikamy prawym przyciskiem myszy i wybieramy "paste". Kopiowanie wymaga wybrania "Mark" przeciągnięcia myszką po naszym tekście i naciśnięcie Enter. Wy musicie tylko wkleić to i odpalić skrypt: Jedyne co was interesuje to argument fps. Jeżeli wasza gra jest w 60 to musicie to zmienić. Po kilku sekundach w folderze pojawi się plik output.avi. avi, nie gif więc coś jest nie tak. Upload Uzyskaliśmy zwykły film w avi, a chcieliśmy mieć gifa. To żaden problem bo i tak będziemy mieć HTML5! Załóżcie sobie konto na gfycat.com. Konto pozwoli wam później w razie czego usunąć gifa albo edytować opis. Poza tym wszystkie będą posortowane i dostępne przez konto. Same plusy. Uploadujecie film na gfycat i cieszycie się gotową animacją. Ale tak jak wspomniałem jest to film w HTML5. Więc przyda się trochę wyjaśnień, a najlepiej będzie porównać go do gifa. Plusem filmów w HTML5 jest ich rozmiar. Czasami są nawet dziesięć razy mniejsze, bez żadnej straty na jakości. Do tego okienko na gfycat pozwala na pauzowanie, zwalnianie tępa albo odtwarzanie od tyłu. Jedyna wada jest taka że nie zawsze można je użyć. Oczywiście wysyłając komuś link, postując na Facebooku czy Twitterze jest rewelacja, ale jeżeli chcecie pochwalić się np tutaj na forum potrzebujecie klasycznego gifa. Być może kiedyś się doczekamy takich feature na GMClanie. :P Do niedawna gfycat oferował nam od razu linki do udostępniania, niestety w ostatniej zmianie interface'u coś skopali i nie mogę tej opcji znaleźć. Ale wciąż możemy dokopać się do gifa zmieniając URL linku. Pierwszy to HTML5, a drugi to gif gotowy do wsadzenia w tag [ img ]. A może AVI? Mamy gotowy film więc może z nim też coś zrobimy? Możecie pozbierać trochę takich krótkich materiałów i zmontować z nich np trailer gry. Niestety na gameplay się to nie nadaje bo nie nagrały się dźwięki, musicie poprosić kogoś o pomoc w nagraniu jeżeli wasz komp zamula. Więc mając kilka filmów możecie otworzyć wasz program do montowania video i skleić wymarzony trailer. Jeżeli wiecie jak to zrobić to dziękuję za przeczytanie tego i liczę że się przyda. Jeżeli jednak nie renderowaliście nic nigdy i w waszej głowie siedzi Windows Movie Maker, to możecie czytać dalej. Solidnie odradzam WMM. Niektórzy twierdzą że się da, ale ja nigdy nie znalazłem opcji która pozwoliłaby mi renderować coś większego niż 480p bez okropnej kompresji. Ten program się do tego nie nadaje, MEncoder też nie, ale może pomóc. Jeżeli zbierzecie wszystkie screeny jakie chcecie w swoim filmie do jednego folderu i wszystkie będą alfabetycznie, to nic nie szkodzi na przeszkodzie alby znów wyrenderować z tego avi. W dodatku możecie narysować własne efekty specjalne! Każda klatka waszego filmu jest przecież zapisana jako obraz w waszym folderze! Potrzebujecie wkleić logo na początku? Dodajcie go na kilku screenach! To bardzo mozolna praca, ale będziecie mogli potem się tym chwalić! Jedyny problem jaki pozostaje to muzyka... No cóż. Skądś musicie ją mieć. Potem przycinacie to w Audacity do długości waszego filmu i obrabiacie w jaki chcecie sposób! Jedyne co pozostaje do zrobienia to wrzucenie muzyki do folderu w którym jest MEncoder.exe i film po czym w CMD wykonanie: Oczywiście widzicie które argumenty trzeba zastąpić nazwami plików? Skąd to wszystko wiem? Ano stąd: http://www.mplayerhq.hu/DOCS/HTML/pl/mencoder.html Nauczyłem się tego podczas używania Chronolapse. Nie podobało mi się jak mocno kompresował film więc sprawdziłem jak to robi i robię tak samo z tą różnicą że ustawiam "bitrate=9999999".
  10. Myślę że dodawanie "+5%DMG", "+10%DMG", "+15%DMG" szybko mi się znudzi i czegoś takiego nie będzie. O pomysły raczej się nie martwię. Fabuła polega na tym że na naszych dwóch komandosów została rzucona klątwa i oni będą próbować wszystkiego aby ją ściągnąć. Szukać magicznych artefaktów, uczyć się magii, podróżować pomiędzy światami. Gameplay jakiś fabularny w końcu się pojawi, ale do tego czasu gra będzie zbitką 'aren'. Boję się tylko że gdzieś daleko pojawi się pomysł który będzie wymagał zbyt dużych zmian w grze. Dlatego nie ruszam teraz przeciwników. Teraz pomiędzy dodawaniem szybkich pomysłów pracuję nad skończeniem zbugowanego wciąż portal guna. Potem przyjdzie czas na zatrzymywanie/spowalnianie czasu. Dalej ważna jest telekineza, na horyzoncie są DOTy, paraliż etc. Już są umiejętności negatywne i OP. To od gracza zależy czy chce sobie zrobić wyzwanie z 1HP czy luzik z nieśmiertelnością. Ale graczy jest dwóch. W końcu twojemu drugiemu graczowi znudzi się to że zabijasz railgunem wszystko na hita, i to on zmusi Cię do grania inaczej. Combo? Sporo pasywnych skilli! Zwiększenie obrażeń z wybuchu nie będzie miało sensu jeżeli nie będziesz mieć granatów. Jest już pasyw "minigun" powodujący że gdy trzymasz bron twoja szybkość strzelania jest 4 razy większa, ale szybkość poruszania 4 razu mniejsza (praktycznie odrzut broni Cię porusza). Wtedy chcesz biegać bez broni, a dostawać ją tylko na wielkie fale przeciwników.
  11. json_decode() zwraca Ci specjalny ds_map. Czemu specjalny? Bo on może w sobie zawierać inne struktury. W twoim przypadku żeby odczytać coś z tego co podałeś musiałbyś zrobić np tak: GML wynik = json_decode(strona); gracz=wynik[?"hawaxi"] draw_text(x,y,gracz[?"summonerLevel"]) To ze znakiem zapytania to skrócona funkcja do działań na ds_grid. Mam nadzieję że już to umiesz. Edit: Przeniosłem do pytań zaawansowanych. ;) Edit2: Mam nadzieję że http_get() nie obsługujesz tak ja tu napisałeś. Ech, muszę się wyspać bo nie doczytałem. ;)
  12. To jeden z pasywnych skilli "Finezja" zwiększa movement speed o 33% w sytuacji gdy postać znajdzie się bardzo blisko przeciwnika. Fajnie to wypada w gameplayu. Z samego efektu tych pasków byłem zadowolony jak je na początku zakodowałem, ale coraz bardziej mi się nie podoba. Jak na razie w grze jest 17 działających umiejętności, zaplanowane mamy ponad 80, a obstawiamy że będzie ponad 400. :mellow: Setup gry nam na to pozwala, i to od wyobraźni gracza będzie zależeć jakich umiejętności będzie używać. Ogółem to już zaraz będą 4 miesiące prac. Działa nam cały silnik, dodajemy teraz umiejętności bo one będą mogły wywrócić gameplay. Następne w kolejności są nowe mapy, a najbardziej zaniedbani będą przeciwnicy. Tych nie chcę ruszać dopóki reszta nie będzie banglać.
  13. Tylko local bo online traci sens gra.
  14. Co Ci to ma dać skoro nie przypisałeś tego do żadnej zmiennej?
  15. Bardzo proste. Kierunek z x,y do myszy to: point_direction(x,y,mouse_x,mouse_y). Kierunek od myszy do x,y to: point_direction(mouse_x,mouse_y,x,y)
  16. 3 sposoby: Wysyłasz cały folder Zapisujesz jako .gmx Ogarniasz GIT albo SVN
  17. Wydaje mi się że problem leży w tym że w opcjach renderowania miałeś (albo nie miałeś) ustawioną synchronizację klatek audio z video. Być może ponowny render bez tej opcji pomoże, a być może nie da się już tego naprawić.
  18. instance_deactivate_object() i instance_activate_object() Przeczytanie całej dokumentacji to mniej niż 5 godzin. Polecałbym przed zabraniem się za jakąkolwiek grę. Sporo fajnych funkcji znajdziesz.
  19. Zapisać ją do dwóch zmiennych. Osobno x i y. Ale może inne rozwiązanie Cię zaspokoi. Możesz nie usuwać tego obiektu a tylko go dezaktywować.
  20. Bardziej skomplikowanie nie mogłeś tego opisać. Przecinki mogły by bardzo dużo pomóc. Nie rozumiem więc strzelam: GML (Event Destroy objkey2) instance_create(x,y,obj_key)
  21. Zasada jest taka że przypisujesz background_x[0]=gracz.x+zmianna ta zmienna ma się zwiększać/zmniejszać w czasie.
  22. Nie da rady sprawdzać zwykłego mouse_x/y dla GUI bo ono ma rozmiar i wymiary ekranu, nie gry. To co podałeś jest prawdziwe tylko w wypadku gdy warstwa GUI ma rozmiar application_surface, a nie zawsze się opłaca tak robić. Polecam: https://yoyogames.com/tech_blog/109
  23. Threef

    Wasze pulpity

    Nawet nie wiedziałem że Windows robi od razu ss obu ekranów. Śmiesznie to wygląda ale ten prawy ekran na prawdę mam fizycznie niżej. Burdel, bo dla mnie pulpit to folder temp. Zazwyczaj zapisuję tu pliki przed uploadem. Wszystkie aplikacje mam przypięte do start. Gratis ekran Facebooczka bo jest mocno customowy.
  24. ini po prostu oducz się używać. -[PhariseuS]- podał funkcję na zmianę rozmiaru GUI. Musisz poczytać jak to wszystko działa, bo GUI nie będzie miało rozmiaru view a rozmiar ekranu. Są funkcje od myszy. Zaczynają się chyba do display_* zobacz w dokumentacji.
×
×
  • Dodaj nową pozycję...