Skocz do zawartości
  • 0
Chell

Temat zbiorczy na drobnostki

Pytanie

masz pytanie, które nie zasługuje na własny temat i chcesz je zadać w shoutboxie? nie rób tego! tam utonie! spytaj tutaj. :-)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

816 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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..

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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ą.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Próbowałem każdego modelu.Generalnie chodzi mi o to żeby głośność

wzrastała jak najwolniej

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Przepraszam, że przerywam ten ważny temat

-Czy da się obronić swoją grę przed hackowaniem?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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..

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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...

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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ę.

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
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.

  • Lubię (+1) 3

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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 :/

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Ale ten sam dźwięk (wg. nazwy) dajesz z tym samym priority, czy różnym?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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 :/

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

moze pokaz jakis przyklad kodu, jak tego uzywasz, bo powinno to dzialac dobrze z get timer

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

^

Tak waśnie to wygląda,użycie zwykłego audio_play_sound()  rozwiązało problem.Thx

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

@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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Witam, vspeed to jest prędkość pionowa, co nie? Mam tutaj kod, jest bardzo prosty, jestem na tyle głupi, aby nie zrozumieć, dlaczego jeżeli używam if i not, to vspeed reaguje tylko wtedy, gdy przemieszcza się w dół, dlaczego?!

Tutaj przykład:

if not vspeed = 0
sprite_index = s_Player_Jump;

Za odpowiedzi serdeczne dzięki :moo:

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×