Skocz do zawartości

SimianVirus7

Użytkownicy
  • Zawartość

    185
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    11

Zawartość dodana przez SimianVirus7

  1. Dimension Invader - demo

    Feeling strzelania jest fajny, bardzo mi się podobał. Mapki rzeczywiście mało rozbudowane i surowe ale jakoś zbytnio to nie przeszkadzało, a pewnie będzie urozmaicane. Zmieniłbym tylko to otwieranie drzwi, bo psuło trochę dynamikę gry. Niech otwierają się bardzo szybko albo jakoś je inaczej zmienić. Trochę miałem dość tej muzyki po kilku minutach xD jakby była dłuższa to ok. Ale ogólnie to dobrze to wygląda i w jak wyjdzie aktualizacja to na pewno zagram. PS: Za pierwszym razem nie odpaliła mi się cutscenka w intro i nie wiedziałem co mam zrobić
  2. Temat zbiorczy na drobnostki

    Pytanie o game maker: studio Można jakoś pozyskać listę folderów, a później plików w tym folderze? Chciałbym zrobić eksplorator plików muzycznych i powiedzmy, że mam główny folder nazwany "Music", a w nim foldery o niewiadomej mi nazwie, a w tych folderach pliki muzyczne też o niewiadomej nazwie. Tyle wiem, że trzeba będzie zrobić jakąś tablice trzymającą ścieżki. Albo jestem zbyt zmęczony, żeby wpaść na pomysł, albo tego po prostu w gm:s nie da się zrobić.
  3. Nad czym aktualnie pracujesz?

    Przesyłanie danych co klatkę, ale skoro się pytasz to wiem, że robię błąd Generalnie wszystkie poradniki na temat "networkingu" robiły mi z mózgu papkę, bo nie wiedziałem co jak i do czego, a co każdy poradnik to inny sposób. Dlatego też większość jak nie wszystko napisałem po swojemu posiłkując się dokumentacją.
  4. Nad czym aktualnie pracujesz?

    Miałem zamiar nie pisać gry, tylko mieć jakiś cel, bo pisanie gier trochę mi nie wychodzi. Postanowiłem więc zrobić coś, czego nigdy wcześniej nie tykałem. Napisałem serwer i klienta.
  5. Tworzenie Serwera

    Dobra, nevermind, już wiem. Po prostu robiłem pętle chwila przerwy i człowiek głupieje
  6. Witam, Chcę zrobić prosty "all-in-one server". Nigdy tego nie robiłem, posiłkuje się dokumentacją i poradnikiem z yoyogames: https://help.yoyogames.com/hc/en-us/articles/216754698-Networking-Overview Przy samym tworzeniu serwera mam następujący błąd, gdzie wykonują się dwa bloki IF'a, czyli tak jakby rezultat był pozytywny jak i negatywny. Stoję za NATem ale mam możliwość wyprowadzania portów przez mojego IPS. Kod: server_socket = network_create_server(network_socket_tcp, 65010, 2); if(server_socket < 0) { show_message("Nie udało się stworzyć serwera"); instance_destroy(); } else { room_goto(rGame); } Rezultat: a) gdy nie jest włączony serwer (czyli port nie jest zajęty): Error: I could not see your service on 94.40.xxx.xxx on port (65010) b ) gdy jest włączony serwer: - wyświetla wiadomość o nieudanym stworzeniu serwera - niszczy obiekt oServer (jeśli usunę kod dla niszczenia obiektu, to wiadomość wyświetla się cały czas) - przechodzi do następnego pokoju - otwiera port: Success: I can see your service on 94.40.xxx.xxx on port (65010)Your ISP is not blocking port 65010
  7. 12 Prac Herkulesa

    Też zakupiłem kopie i no cóż... szczerze mówiąc myślałem, że będzie się trochę różnić od wersji dema. Trochę za trudna? Nie wiem czy to przez wzgląd na mechaniki czy po prostu nie potrafię grać. Niemniej jak zginąłem przy balistach to nie miałem ochoty zaczynać od nowa. Ale hej, skończyłeś swoją grę od początku do końca (chyba, bo końcówki nie ujrzałem :P), to się chwali. PS: Lektor zasługuje na oklaski, dobrze się tego słucha.
  8. Kolizja - sterowanie padem

    Niestety, move_outside_solid powodował, że postać wchodziła w ścianę i poruszała się wolniej(?) Natomiast co mnie zdziwiło bardziej, to to, że przykład Threefa, brzmiał w teorii bardzo prosto i wydawałoby się, że powinien zadziałać stu procentowo, czyli "uderzyłeś w ścianę, cofnij się o jeden pixel", co w zupełności nie przełożyło się na praktykę Kod zadziałał tak... jakby go nie było Niemniej dzięki za podpowiedzi inaczej pewnie bym porzucił temat i odłożył GM'a na kolejne miesiące. Poczytałem trochę, pomyszkowałem, poszperałem i mam! Znalazłem i działa bardzo dobrze! https://www.yoyogames.com/blog/432/buttery-smooth-tech-tips-movement
  9. Dzień Dobry, Aż wstyd mi jest zakładać wątek w tej sprawie, bo po takim czasie, powinienem wiedzieć jak to robić, aczkolwiek nie chce znowu porzucić gm'a poprzez zniechęcenie się, także pytam. Sterowanie jest napisane pod pada, pod analog. Nie mogę sobie poradzić z napisaniem dobrej kolizji. Nasmarowałem coś takiego: Maska kolizji + origin + wymiary bohatera: Maska kamienia jest na precise, a origin ustawiony w środku sprita Kod: axisY = gamepad_axis_value(0, gp_axislv); //zczytaj ustawienie lewego analogu vertykalnie axisX = gamepad_axis_value(0, gp_axislh); //zczytaj ustawienie lewego analogu horyzontalnie if(gamepad_button_check(0, gp_face1)) game_restart(); if(scr_gp_treshold(0, 0.2)) //martwa strefa gałki { dir = point_direction(0, 0, axisX, axisY); //oblicz kierunek spd = (abs(axisX) + abs(axisY))*max_spd; //oblicz spd wraz z przyspieszeniem } else { spd = 0; } motion_set(dir, spd); //nadaj ruch //kolizja if(!place_free(x, y)) { var _id = instance_place(x, y, oRock); var _dirOpposite = point_direction(_id.x, _id.y, x, y); //motion_set(_dirOpposite, spd); while(!place_free(x, y)) { x+=lengthdir_x(.1, _dirOpposite); y+=lengthdir_y(.1, _dirOpposite); } } Efekty tego są takie Przy jednej przeszkodzie, wygląda świetnie: Ale przy kilku mniejszych, osadzonych obok siebie, postać teleportuje się na drugą stronę: Pytania: a) jakieś pomysły, co tu zmienić? b ) mam pooglądać poradniki na YT, bo ten kod do niczego się nie nadaje? c) Czy można skorzystać wbudowanej fizyki w gm:s2 czy lepiej tego nie używać?
  10. Nad czym aktualnie pracujesz?

    Co to? Można w to zagrać?
  11. Maska kolizji ataku bohatera

    No jeśli animacja się zmienia, to znaczy, że gdzieś w kodzie tak masz zapisane, że przy jakimś warunku ma się zmieniać animacja edit: Chodzi mi o to, że gdzieś masz sprite_index który zmienia się, przy wykonaniu jakiegoś warunku, dajmy na to: Jesteś w powietrzu -> Animacja zmienia się na spr_animacjaskakania -> Wciskasz A lub D i zmienia się animacja, bo do tej akcji przypisany jest if od sterowania Czy coś takiego
  12. Maska kolizji ataku bohatera

    kilka klatek się wyświetla a później co się dzieje? Zastyga w jednej klatce, zmienia się animacja, animuje od początku?
  13. Maska kolizji ataku bohatera

    Zacząć od image_index = 0, kiedy skok się zaczyna. Możesz zrobić np. if keyboard_check_pressed(vk_space) then image_index = 0; albo inacej, bo to zależy od twojego kodu sterowania: CREATE: animOdPoczatku = true; STEP: if(inAir == true && climbing == false && animOdPoczatku==true) { image_index = 0; //zaczynaj od pierwszej klatki sprite_index = spr_player_air;// wyswietlaj animacje skakania animOdPoczatku = false; } ANIMATION END: if(sprite_index == spr_player_air) { image_index = image_number - 1; animOdPoczatku = true; }
  14. Maska kolizji ataku bohatera

    no i fajnie, brakuje jeszcze zaczynania animacji od początkowej klatki, ale to nie przeszkadza, to być nie musi. Do zmiany tempa odtwarzanej animacji służy image_speed: image_speed = 1; // normalna prędkość image_speed > 1; // szybsza prędkość image_speed < 1; // wolniejsza Daj sobie image_speed = 0.5; a po zakończeniu animacji, wróć do standardowej image_speed = 1;
  15. Maska kolizji ataku bohatera

    Kolejny kogel mogel :V Po co Ci te zmienne: klatkaAnimWPowietrzu = 0; cmin = 0; cmax = 0; Do obliczania, kiedy animacja się zakończy? A nie lepiej użyć wbudowanego w gm:s "animation end"? I wtedy dajesz normalnie w stepie, żeby zaczął Ci wykonywać animacje po jakimś spełnionym warunku (choćby ten co masz), najlepiej od zerowej klatki, a w animation end dajesz, warunek, że jak ta animacja się zakończy, to ma zostać na ostatniej klatce
  16. Nad czym aktualnie pracujesz?

    Jaka świnia taki schab, jakie życie taki rap. To jest piękne.
  17. Intro obrazkowe+wyświetlający się pod obrazkiem tekst

    W sumie to było łatwiejsze niż myślałem. Aczkolwiek jest to najbardziej podstawowa wersja, jaką da się zrobić (tak sądzę). Przykład: https://gmclan.org/up8556_16_Wypisywanie_tekstu.html
  18. Intro obrazkowe+wyświetlający się pod obrazkiem tekst

    Pewnie, że jest taka możliwość, a nawet i pewnie multum możliwości Jednak ja tutaj nie pomogę, bo nigdy tego nie robiłem. Jednym ze sposobów byłoby rozdzielenie całego stringa w tablicy, na tablice ze znakami (char), a później w pętli for, która wykonywała by się w jakimś interwale czasowym, wypisywać po kolei literki. Niemniej to jest pomysł, który jako pierwszy i od razu przychodzi mi na myśl. Jak jest z jego wykonaniem to nie wiem. Na pewno nie jest on najlepszym pomysłem, z pewnością są lepsze i bardziej optymalne rozwiązania.
  19. Intro obrazkowe+wyświetlający się pod obrazkiem tekst

    Ale co Ty tu za bezeceństwa napisałeś Nawet nie wiem jak to wytłumaczyć Generalnie, to, kiedy masz przejść do następnego pokoju, sprawdzasz jednym ifem, na podstawie dwóch zmiennych "index" i "czego_wiecej". Jeśli "index" będzie większy, niż klatki z intro (tekst/obrazki) to przejdź do następnego pokoju. Czyli if index > czego_wiecej to goto_room_next(); //Najpierw zwiększaj index if(keyboard_check_pressed(vk_enter)) then index+=1; //Zwiększyć ten indeks o jeden, jeśli naciśne Enter //a dopiero później sprawdzaj var czego_wiecej = max(array_length_1d(msg), sprite_get_number(spr_intro1)); //zobacz, czy jest więcej obrazków czy tekstu i wpisz maks. liczbę if (index >= czego_wiecej-1) // możliwe, że będziesz musiał dać też -1, czyli index == czego_wiecej-1 { //W tym bloku wypisujesz akcje, które mają być spełnione po zakończeniu intra room_goto_next(); } /* TEGO TU NIE MA BYC, WYTNIJ TO, TO JEST POPSUTE I NIEDOBRE if (index == sprite_get_number(spr_intro1)) //teraz możesz tego używać, bo spr_intro1 zawiera cztery klatki { // Slajd kończy się, gdy osiągnie ostanią klatkę spr_intro1 // to koniec } */
  20. Intro obrazkowe+wyświetlający się pod obrazkiem tekst

    1. No to zrób if'a :V Znaczy masz już tam jednego co to sprawdza, wystarczy go przerobić pod siebie, nie będzie to trudne. Jedynym minusem tej metody jest to, że masz jedną sprawdzającą "index" na dwie sytuacje, czyli tekst i obrazki. Dlatego zawsze i tekst i obraz musi mieć taką samą pulę, czyli np. 5 obrazków to 5 tekstów (msg[5]). Ale jak masz np. więcej tekstu, to dajesz puste obrazki png, a jak masz więcej obrazków niż tekstu to dajesz pusty tekst msg[] = ""; 2. Zamień kolejność rysowania w draw xD głupol ze mnie. Najpierw niech rysuje obraz, a później tekst. PS: W sumie możesz jeszcze założyć blokadę w draw przy użyciu zmiennej "index", żeby nie wyleciała poza tablice, to wtedy nie będziesz musiał dawać pustych obrazków/tekstu DRAW //Rysuj tekst msg[i] oraz ilustracje z blokadą na tablice //Wskaźnikiem jaki ma być teraz rysowany tekst/obraz, jest zmienna "index", która zmienia się wraz z przyciskiem ENTER draw_sprite(spr_intro1, min(index, sprite_get_number(spr_intro1)-1), x+640, y+360); //najpierw (pod spodem) rysuj obrazek var dl_tablicy = array_length_1d(msg); //zobacz jaka jest dlugosc tablicy, aby zaznaczyc końcową wartosc przy rysowaniu draw_text(x+200, y+750, msg[min(index, dl_tablicy-1)]); //później (nad obrazkiem) rysuj tekst) a w stepie zobaczysz czego jest więcej i do tego się odwołać w ifie var czego_wiecej = max(array_length_1d(msg), sprite_get_number(spr_intro1)); if (index == czego_wiecej) // możliwe, że będziesz musiał dać też -1, czyli index == czego_wiecej-1 { // Slajd kończy się, gdy osiągnie ostanią klatkę spr_intro1 // to koniec }
  21.  1bit_arena

    Tytuł: 1bit_arena Gatunek: top-down Opis: Wejdź na 1bit arenę i wykręć jak najlepszy wynik, a następnie pochwal się nim on-line! Znajdziesz tu cztery rodzaje przeciwników i sześć rodzai broni, które urozmaicą starcia na arenie. Oprócz zwykłej bitki, czeka na Ciebie Trzy epizodowa kampania dla jednego gracza! Cóż, miało to wyjść o wiele lepiej, myślę, że Podziemia Księżyca są milsze do ogarnia, ale tragedii chyba nie ma Download: Wersja 1.1 Rozmiar pliku: 12Mb Autorzy: Programowanie: SimianVirus7 Fabuła: SimianVirus7 Grafika: SimianVirus7 Muzyka: Juhani Junkala, TFLM Screeny:
  22. Intro obrazkowe+wyświetlający się pod obrazkiem tekst

    if (index == sprite_get_number(spr_ilustracja4)) { // Slajd kończy się, gdy osiągnie numer obrazu spr_ilustracja4 lub długość tablicy msg // to koniec } Pomyśl, jakie są wartości ukryte pod tymi nazwami: Index = zainicjowałeś go w postaci liczby "0" i domyślam się, że wcisnąłeś enter 3 razy, żeby przejść do msg[3]. Teraz index = 3; Sprite_get_number(spr_ilustracja4)) - ta funkcja, tak jak napisał Konrad, zwraca ilość klatek w obrazie. Domyślam się (znowu :V), że jest tam tylko JEDNA klatka, więc Sprite_get_number(spr_ilustracja4)) = 1 i zawsze tam będzie jeden, jeśli obrazek nie jest animacją. Tak więc, warunek zawsze będzie prawdziwy, kiedy po raz pierwszy naciśniesz enter, bo wtedy index = 1; Możesz to zrobić poprzez array_length_1d a jakże, bądź, w taki oto fajny sposób (coś może się nie zgadzać, bo piszę z pamięci): 1) Robisz jeden sprite, o nazwie np. spr_intro1 2) W tym sprite dodajesz spr_ilustracja1, spr_ilustracja2, spr_ilustracja3, spr_ilustracja4 itd. tak, żeby powstała Ci animacja. 3) Create masz dobrze, a w Stepie coś takiego: if (keyboard_check_pressed(vk_enter))//Zwiększyć ten indeks o jeden, jeśli naciśne Enter index+=1; if (index == sprite_get_number(spr_intro1)) //teraz możesz tego używać, bo spr_intro1 zawiera cztery klatki { // Slajd kończy się, gdy osiągnie ostanią klatkę spr_intro1 // to koniec } 4) Draw: //Rysuj tekst msg[i] oraz ilustracje //Wskaźnikiem jaki ma być teraz rysowany tekst/obraz, jest zmienna "index", która zmienia się wraz z przyciskiem ENTER draw_text(x+200, y+750, msg[index]); draw_sprite(spr_intro1, index, x+640, y+360); Pamiętaj, że msg[] i ilość klatek w spr_intro1 musi być taka sama, bo inaczej indeksowanie tablicy Ci się wysypie, ale możesz to zabezpieczyć, np za pomocą funkcji clamp() albo po prostu jak masz więcej obrazków niż tekstu, to daj pustą tablicę, czyli msg[42] = "";
  23. Znana gra w innym wydaniu

    Strasznie klimatyczna świetne! Niestety umarłem przy drugim robocie Kolejna gra która udowadnia mi, że nie musi być wodotrysków, żeby dobrze się bawić.
  24. Znana gra w innym wydaniu

    Cześć Wszystkim! Dzisiaj po południu dostałem zgodę, a więc organizuje konkurs! Zadaniem jest stworzyć odmienną wersję gry, którą wszyscy znają, np. Skyrim jako strategia/karcianka. Gry nie będą monetyzowane w żaden sposób, a więc nikt nie powinien przyczepić się do praw autorskich. Możecie używać dowolnego silnika oraz technologii, ważne, abyście robili to w pojedynkę, ponieważ przewidziane są nagrody! 1 Miejsce - zwycięzca może wybrać nagrodę z miejsca 1, 2, 3; Human: Fall Flat - Steam Life is Strange Complete edition - Steam Company of Heroes 2 - Steam 2 Miejsce - zwycięzca może wybrać nagrodę z miejsca 2, 3; Random Premium Key - Steam Gothic Universe Edition (1-3) - Steam Minecraft Windows 10 edition - Microsoft 3 Miejsce; Grid 2 - Steam Dirt 3 - Steam Lego LoTR - Steam Lego Batman - Steam Pojedynkują się: Wszyscy którzy maja chęć, nie trzeba się nigdzie zapisywać. Temat: Znana gra w innym wydaniu. Zasady - Gra musi być tworzona w pojedynkę - Projekt tworzony od podstaw - Wybór silnika dowolny - Dozwolona gra 2D jak i 3D Zakończenie: 1 Września 2019 (niedziela), godzina 19:00. Ocenia/ją: zostanie założona ankieta dla ogółu - demokracja. PS: Użytkownik o nicku SimianVirus7 ma bana na nagrodę ale także może brać udział w konkursie. Głosy na jego pracę nie będą wliczane w ranking.
  25. Znana gra w innym wydaniu

    Halo Halo, Trochę nieładnie zrobiłem, że zniknąłem, przepraszam @exp dziękuje za wzięcie udziału Chciałem popykać w tego quake'a ale link wygasł. Niemniej jednak, wygrałeś. Wygrałeś i obiecałem nagrodę, także proszę, wybierz sobie coś Poczytałem o tej twojej gierce i jeszcze bardziej chcę zagrać.
×