PsichiX Opublikowano 30 Października 2017 Udostępnij Opublikowano 30 Października 2017 2 godziny temu, Ignatus napisał: Naprawdę nikt nie wie jak zrobić to metodą którą zaproponowałem? tu nie chodzi o to, ze nikt nie wie - tu chodzi o to ze ten "najprostrzy" sposob sprawi, ze bedziesz sie jeszcze bardziej z tym miotal, bo ma to restrykcje gdzie na przyklad moga pojawiac sie elementy krwi, a gdzie nie, plus wydajnosc to zabije. my serio staramy sie rozwiazac ten problem na sposoby, ktore pozbawia Cie meczarni i nie zabija aplikacji. to nie jest taki trywialny problem, jak Ci sie wydaje i tutaj w kazdej metodzie zyskujesz cos, tracac cos innego - nie ma tu sytuacji win-win. jak chcesz miec to zrozumiale dla Ciebie, to bedzie to niewydajne i bugogenne, ale zyskujesz wygode prostej implementacji. w druga strone implementacja jest nieco bardziej skomplikowana, ale zyskujesz na wydajnosci. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 30 Października 2017 Udostępnij Opublikowano 30 Października 2017 Rozumiem doskonale co masz na myśli i dlatego bardzo chętnie poznam obie metody- bo póki co obie są dla mnie nie do ogarnięcia.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Listopada 2017 Administratorzy Udostępnij Opublikowano 1 Listopada 2017 Dnia 30.10.2017 o 14:43, Ignatus napisał: Nie chce shaderów ani surface Przykład z blogu yoyogames nie korzysta z surface. Ze zmiany blendingu, ale przez to nie obsłguje kanałów alpha. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 1 Listopada 2017 Udostępnij Opublikowano 1 Listopada 2017 Ok,ale ten przykład jest na GM2, no chyba że omineła mnie aktualizacja wprowadzająca do GM1.4 komendy typu "gpu_set_blendenable(false)" A jako że ja mam wiecznie problemy to mam kolejną małą i prostą sprawę w międzyczasie do blood ;p Mam obiekty broni, z parentem obj_weapon_parent.Obiekty maja w create event_inherited().Obj_weapon_parent tworzy zmienną "saved=false".Ale z jakiegoś powodu pojawia się błąd Variable obj_sword.saved(100335, -2147483648) not set before reading it. at gml_Object_obj_weapon_parent_StepNormalEvent_1 (line 2) - if (saved=true){effect_create_above(ef_spark,x,y,.1,c_red) } Dlaczego event_inherited tutaj nie działa?? Jak wpiszę ręcznie do create obj_sword to wysypie się następna w kolejnosci broń.Dodam że ta komenda z błędu także pochodzi z parenta-jak to jest że step dziedziczy a create już nie ? edit.wygląda na to że tym razem wyjątkowo znalazłem nowego buga zamiast popełnić błąd.Ten event Create był całkowicie skopiowany z innego obiektu i z jakiegoś powodu był przez to ignorowany przez jego dzieci....Testowałem na różne sposoby (np instance_destroy() w pierwszej linijce) .Po usunięciu tego eventu i w nowym wpisaniu wszystkiego ręczenie działa tak jak powinno..Brawo Yoyo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 16 Listopada 2017 Udostępnij Opublikowano 16 Listopada 2017 Czy siatki ds_grid są globalne czy lokalne? Chodzi mi o to, że jeśli w: object1 - create grid = ds_grid_create(width, height); object2 - create grid = ds_grid_create(width, height); To będą się one w jakiś sposób gryzły? czy po prostu jak są w oddzielnych obiektach to siebie nie widzą. Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 16 Listopada 2017 Udostępnij Opublikowano 16 Listopada 2017 @SimianVirus7 nie chodzi o to czy kolekcje danych są globalne, czy lokalne - o tym decyduje, gdzie te utworzoną kolekcje zapiszesz, do "czyjej" zmiennej. wszelkie wartości trafią, do tego obiektu on należy, ale nic nie stoi na przeszkodzie współdzielić kolekcję pomiędzy obiektami. taka dana siedzi gdzieś w pamięci komputera i zmienne jedynie wskazują na tę daną w pamięci (w sensie liczby akurat są zawsze kopiowane, stringi prawdopodobnie też ale kolekcje są zawsze gdzieś w pamięci i podczas utworzenia kolekcji dostajesz jej identyfikator, numer, który jest niejako wskaźnikiem, którym przy obsłudze kolekcji mówisz GMowi, którą kolekcję modyfikujesz). Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 16 Listopada 2017 Udostępnij Opublikowano 16 Listopada 2017 Zawsze wiedziałem, że programiści są nienormalni ale pisanie ekwipunku tylko to potwierdziło dzięki za odpowiedź Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Listopada 2017 Administratorzy Udostępnij Opublikowano 20 Listopada 2017 Dnia 16.11.2017 o 18:33, SimianVirus7 napisał: Czy siatki ds_grid są globalne czy lokalne? Chodzi mi o to, że jeśli w: object1 - create grid = ds_grid_create(width, height); object2 - create grid = ds_grid_create(width, height); To będą się one w jakiś sposób gryzły? czy po prostu jak są w oddzielnych obiektach to siebie nie widzą. Są globalne. Do zmiennej zostanie przypisany numer grida. Jak zrobisz to do tej samej zmiennej, to ten stary grid nadal istnieje, tylko nie masz zapisanego nigdzie jego numerka. Powiedzmy sobie, że każdy ds_xxx działa tak samo jak dodawanie sprite - dostajesz ID, ale jak znika zmienna to nie znika zasób i nadal wisi w pamięci. I jakbyś na chybił trafił tę cyferkę podał, to byś nawet odczytał te wartości? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Mm pytanie co do dźwięku przestrzennego.Na razie dopiero sobie testuje na przykładzie odgłosu pochodni do której się zbliżam i oddalam (top down) Mam emisja= audio_emitter_create(); audio_falloff_set_model(audio_falloff_linear_distance_clamped) audio_emitter_falloff(emisja,100,300,1) I działa to tak jak powinno ale jest wyczuwalny bardzo wyraźny "skok" pomiędzy jest dźwięk/nie ma dźwięku- dopiero potem zaczyna się odpowiednia regulacja głośności do odległości(wtedy działa dobrze).Jak zrobić maksymalnie płynne przejście w granicę słyszenia cichego dźwięku?Kombinowałem z liczbami w audio_emitter_fallof i modelem fallof ale każde rozwiązanie było tylko gorsze i te ustawienia póki co są najlepsze (tylko jest wyczuwalny skok).Jakieś pomysły? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Może to kwestia modelu? clamped sugeruje ze jest to zamkniete miedzy dwiema wartosciami i wartosc minimalna moze byc malo plynna, probowales uzyc nieclampniętego liniowego albo exponent? Edit: Z dokumentacji wychodzi że clamp działa na minimalny dystans, nie maksymalny. Nie mam pojęcia jak temu zaradzić w łatwy sposób. Możesz zawsze ręcznie zaprogramować listener robiąc grupę audio i zmieniając jej głośność w zależności od dystansu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Próbowałem każdego modelu.Generalnie chodzi mi o to żeby głośność wzrastała jak najwolniej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 To zwiększ dystans. A jeśli głośność naprawde "zaczyna się" za szybko to musisz samemu zmieniać volume w zależności od dystansu. Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Penguin Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Przepraszam, że przerywam ten ważny temat -Czy da się obronić swoją grę przed hackowaniem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Do pewnego stopnia da, ale nie ma takiej rzeczy na planecie któej by nie zhackowano, więc po co się wysilać jak to gra single player? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Jak już zrobisz kompletną grę w 100% to możesz zająć się takimi pierdołami.Jest gigantyczne prawdopodobieństwo że stracisz xx czasu na to a gra i tak nigdy nie będzie zakończona.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Penguin Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 @Ignatus Wiem, ale pytałem się, bo w dalekiej przyszłości prawdopodobnie będę nad tym myśleć. @I am vader Dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 4 Marca 2018 Udostępnij Opublikowano 4 Marca 2018 Mam dziwne wrażenie że ten cały system audio to jakiś niedorobiony jest ,ale może to kwestia braku doświadczenia na tym polu. Załóżmy że mam 5 obiektów "pochodnia" w jakiejś odległości od siebie.Cały dzień już kombinuje jak zrobić żeby głos wydobywał się z każdej pochodni do jakiej podchodzę (i oddalał tak jak powinien)- zamiast tego mam taki efekt że jest ok przy 1 w kolejności- potem mijam kilka i np załącza się 4-5, albo jak spowrotem wracam to znów losowo się uruchamiają.Jak w trakcie gry zrobię reset to nawet ta 1 juz nie dziala prawidłowa.W ogóle nie ogarniam jaki prawami się to rządzi... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Penguin Opublikowano 5 Marca 2018 Udostępnij Opublikowano 5 Marca 2018 Gdy jesteśmy w wodzie, wolniej się poruszamy. Chcę takie coś zrobić w grze, lecz nie wiem, jak się do tego zabrać. Jakiej funkcji mam użyć? Za wszystkie odpowiedzi dziękuję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PatrykPlayingPOLSKA Opublikowano 5 Marca 2018 Udostępnij Opublikowano 5 Marca 2018 7 godzin temu, Penguin napisał: Gdy jesteśmy w wodzie, wolniej się poruszamy. Chcę takie coś zrobić w grze, lecz nie wiem, jak się do tego zabrać. Jakiej funkcji mam użyć? Za wszystkie odpowiedzi dziękuję. To bardzo łatwe,sprawdzasz czy x,y twojej postaci jest na danym obj_woda,jeżeli tak wtedy movement_speed=/2 Najlepszą do tego funkcją bedzie place_meeting. I am vader, Uzjel i Penguin 3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Penguin Opublikowano 5 Marca 2018 Udostępnij Opublikowano 5 Marca 2018 @PatrykPlayingPOLSKA Dzięki, pomogło . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 9 Marca 2018 Udostępnij Opublikowano 9 Marca 2018 Poradziłem sobie z poprzednim problemem z audio ale teraz mam ciekawszy. Czy ilość dźwięków granych równocześnie jest jakoś limitowana?Mam kilka dzwieków które graja sie naraz (przyklad- uderzenie mieczem- rownoczesnie dzwiek uderzenia i ból wroga) I baaardzo często odgrywa sie tylko 1 dzwiek, czasem 2 , czasem żaden (bo np w tle sa inne jak kroki itp).Mam różne "priority" ustawione w dzwiekach ale czy to oznacza ze beda sie wzajemnie wylaczac?Dramatycznie slabo to sie prezentuje póki co :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 9 Marca 2018 Administratorzy Udostępnij Opublikowano 9 Marca 2018 Ale ten sam dźwięk (wg. nazwy) dajesz z tym samym priority, czy różnym? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 9 Marca 2018 Udostępnij Opublikowano 9 Marca 2018 Nie rozumiem za bardzo pytania.. Mam np sytuację taką trafiam wroga i mam w evencie kolizji audio_play_sound_at(snd_hit,x,y,0,100,600,1,0,10) audio_play_sound_at(snd_pain,x,y,0,100,600,1,0,20) I odtwarza sie to losowo - raz oba,raz jeden z nich,raz żaden - a powinny zawsze oba naraz edit:dodatkowo po pewnym czasie przestaja grac jakiekolwiek dzwieki,gra staje sie niema :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 11 Marca 2018 Udostępnij Opublikowano 11 Marca 2018 Czy jest jakiś dokładniejszy sposób na pomiar aktualnego czasu niż get_timer()? Nie chodzi mi o jeszcze drobniejszą skalę czasu, tylko coś co faktycznie obecny "moment" zwraca. Bo get_timer i current_time aktualizują swoje wartości co step, a ja potrzebuje czegoś co zwróci czas pomiędzy stepem. Po co mi to? Do obliczenia pingu. Jak licze (czas obecny - czas wysyłki) to zawsze wynik jest wielokrotnością 16 lub 17, bo 1 step zabiera 16.66ms przy 60 stepach na sekundę. Edit: Alternatywnie to może być jakiś błąd GM'a bo kiedyś sprawdzałem jak długo wykonuje się skrypt używając get_timer przed i po skrypcie i działało - wyświetlało mikrosekundy różnicy. A jak używam tego w funkcji do asynchronous to już nie działa tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 11 Marca 2018 Udostępnij Opublikowano 11 Marca 2018 moze pokaz jakis przyklad kodu, jak tego uzywasz, bo powinno to dzialac dobrze z get timer Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 11 Marca 2018 Udostępnij Opublikowano 11 Marca 2018 Aktualizacja pingu: ///NetServerGetPing(Socket); var _sckpos = ds_list_find_index(PlayerSocket,argument0); if _sckpos!=-1{ var ct = floor(get_timer()/1000); PlayerTimeout[| _sckpos] = ct; PlayerPing[| _sckpos] = ct - PlayerPingStamp[| _sckpos]; PlayerPingStamp[| _sckpos] = ct; NetServerSendPing(argument0); } Po wykonaniu NetServerSendPing(argument0); serwer oczekuje wiadomości zwrotnej która ponownie wywoła powyższy skrypt. Innymi slowy liczony czas to czas od wywołania aktualizacji do wywołania aktualizacji. Kod nie wykonuje się w stepie tylko w Asynchronous Networking, więc powinien działać POZA stepem, szybciej od niego, tak szybko jak szybko przychodzą pakiety. Chyba że czegoś nie wiem o asynchronousie i wykonuje on się tylko tyle razy na sekundę co step. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 12 Marca 2018 Administratorzy Udostępnij Opublikowano 12 Marca 2018 Dnia 9.03.2018 o 12:36, Ignatus napisał: Nie rozumiem za bardzo pytania.. Mam np sytuację taką trafiam wroga i mam w evencie kolizji audio_play_sound_at(snd_hit,x,y,0,100,600,1,0,10) audio_play_sound_at(snd_pain,x,y,0,100,600,1,0,20) I odtwarza sie to losowo - raz oba,raz jeden z nich,raz żaden - a powinny zawsze oba naraz edit:dodatkowo po pewnym czasie przestaja grac jakiekolwiek dzwieki,gra staje sie niema :/ Teoretycznie jest 128 kanałów na dźwięki (na raz) które ustawia audio_channel_num - a korzystanie ze zwykłego audio_play_sound() powoduje to samo ? Ewentualnie źle używasz tej funkcji - x i y to nie powinny być pozycje gracza, tylko pozycje +/- względem audio_listener_position(x,y,z) - zapewne nie zmieniasz tej pozycji, wiec domyślnie masz 0,0,0, jak gracz odejdzie za daleko to po prostu głośność = 0 i dlatego nie gra. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 12 Marca 2018 Udostępnij Opublikowano 12 Marca 2018 ^ Tak waśnie to wygląda,użycie zwykłego audio_play_sound() rozwiązało problem.Thx Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 12 Marca 2018 Udostępnij Opublikowano 12 Marca 2018 @gnysek Skoro już tu wszedłeś, jako master GM'a, powiedz mi, czy asynchronous aktualizuje się tylko tak często jak step? Bo takie odnoszę wrażenie póki co. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Marca 2018 Administratorzy Udostępnij Opublikowano 13 Marca 2018 Sprawdzanie czy trzeba wywołać oczywiście wygląda, że jest co step, bo GM nie jest aż tak asynchroniczny. Ciekawostką jest, że większość eventów działa wspólnie dla wszystkich obiektów, tzn. np. http_get można wywołać w jednym a odebrać w drugim (albo kilku obiektach) na raz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się