Skocz do zawartości

SimianVirus7

Użytkownicy
  • Zawartość

    181
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    10

Ostatnia wygrana SimianVirus7 w Rankingu w dniu 17 Listopad 2019

SimianVirus7 posiada najczęściej lubianą zawartość!

Reputacja

26 Mała Cegła Społeczności

1 obserwujący

O SimianVirus7

  • Tytuł
    Minor User
  • Urodziny 11/15/1997

Contact Methods

  • Website URL
    http://

Previous Fields

  • Użytkownik GameMaker Studio 2
    Nie
  • 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
  • Płeć
    Male

Ostatnie wizyty

3864 wyświetleń profilu
  1. Tworzenie Serwera

    Dobra, nevermind, już wiem. Po prostu robiłem pętle chwila przerwy i człowiek głupieje
  2. 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
  3. 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.
  4. 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
  5. Nad czym aktualnie pracujesz?

    Co to? Można w to zagrać?
  6. 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ć?
  7. 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
  8. 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?
  9. 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; }
  10. 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;
  11. 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
  12. Nad czym aktualnie pracujesz?

    Jaka świnia taki schab, jakie życie taki rap. To jest piękne.
  13. 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
  14. 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.
  15. 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 } */
×