Skocz do zawartości

Temat zbiorczy na drobnostki


Chell

Rekomendowane odpowiedzi

Kto robi obliczenia w draw event a nie do surface w step event sam sobie winien wyników.

 

 

 

To co chciałeś robi? Robi. A że jeszcze zmywa, sprząta i gotuje...

MBX jak zapytał o takie coś, to chwilę później pytał czy by się dało zrobić efekt że się to zamienia na dwójkowy.

 

Metoda sprawdzania obliczeń o kant, bo Threef wynalazł wykonywanie obliczeń w draw event. No jak się potęgowanie z 10 przesunięciami decymalnymi wrzuca do draw event do liczenia to ja się poddaję, nie umiem tego skomentować :)

 

Kim jest Psix?

Po co wgl zmieniać system liczbowy? Nie wierzę, że dodatkowa pętla, power i inne cuda będą szybsze od którejkolwiek z tych opcji, ot tak na logikę.

 

Psix to:

a) Ty, który chce potrolować, po tym jak Nikas zakłócił jego ego.

B) Jeżeli nie Ty, to wyjaśnię to inaczej. Osoba o zdaje się o wiele większej wiedzy, która mimo to nie każe do wykonania 2/2 używać sinusa, cosinusa, pierwiastkowania, radianów i kilku pętli for xD

Odnośnik do komentarza
Udostępnij na innych stronach

Po co wgl zmieniać system liczbowy? Nie wierzę, że dodatkowa pętla, power i inne cuda będą szybsze od którejkolwiek z tych opcji, ot tak na logikę.

 

Psix to:

a) Ty, który chce potrolować, po tym jak Nikas zakłócił jego ego.

B) Jeżeli nie Ty, to wyjaśnię to inaczej. Osoba o zdaje się o wiele większej wiedzy, która mimo to nie każe do wykonania 2/2 używać sinusa, cosinusa, pierwiastkowania, radianów i kilku pętli for xD

 

Bo w dziesiętnym licho się przez trzy dzieli. A w trójkowym niezmiernie wygodnie.

 

 

Właściwym pytaniem jest po kiego to zmieniać na string?

Przecież cała kombinacja z wyświetlaniem polega na tym, aby liczby były wyświetlane bez nieważkich zer z przodu :)

Odnośnik do komentarza
Udostępnij na innych stronach

Bo w dziesiętnym licho się przez trzy dzieli. A w trójkowym niezmiernie wygodnie.

 

 

Właściwym pytaniem jest po kiego to zmieniać na string?

Przecież cała kombinacja z wyświetlaniem polega na tym, aby liczby były wyświetlane bez nieważkich zer z przodu :)

I tak potem, żeby użyć w draw_text muszę wtedy i tak zamienić na string ;)

A chodzi o to, że chce mieć stały format, ze względów estetycznych. Taka koncepcja, czy dobra to się okażę :P

Odnośnik do komentarza
Udostępnij na innych stronach

I tak potem, żeby użyć w draw_text muszę wtedy i tak zamienić na string ;)

A chodzi o to, że chce mieć stały format, ze względów estetycznych. Taka koncepcja, czy dobra to się okażę :P

 

Prześpij się z tematem, po to jest wodotrysk do wyglądania.

 

Za tydzień wymyślisz żeby to na custom font w postaci animowanych spriteów się wyświetlało.

I wtedy będziesz znowu rysował każdy znak oddzielnie :)

Odnośnik do komentarza
Udostępnij na innych stronach

Na początek powiem że skłamałem niemiłosiernie. Podane czasy to nie była średnia, a mediana wzięta na oko. Po prostu z około 25 wyników wybrałem te które nie były skrajnie wielkie czy skrajnie małe, a te które miały przybliżoną wartość.

 

To co chciałeś robi? Robi. A że jeszcze zmywa, sprząta i gotuje...

MBX jak zapytał o takie coś, to chwilę później pytał czy by się dało zrobić efekt że się to zamienia na dwójkowy.

Nigdzie nie widzę aby MaxGaming pytał o zamianę na system dwójkowy. Wręcz przeciwnie, pytał o optymalniejsze rozwiązanie od tego które sam używał.

 

Metoda sprawdzania obliczeń o kant, bo Threef wynalazł wykonywanie obliczeń w draw event. No jak się potęgowanie z 10 przesunięciami decymalnymi wrzuca do draw event do liczenia to ja się poddaję, nie umiem tego skomentować smile.gif
Kto robi obliczenia w draw event a nie do surface w step event sam sobie winien wyników.
Niestety robisz z siebie teraz głupka bo sam zaproponowałeś wyliczanie pojedynczych znaków i rysowanie je pojedynczo z przesunięciem o szerokość znaku. Ja zoptymalizowałem twoją propozycję by w ogóle miała szansę być porównana z innymi metodami, bo samo użycie draw_text() 10 razy sprawia że nie mamy o czym gadać. Jeżeli zrobiłem to źle to proszę, masz wolna rękę w poprawieniu mnie i udowodnieniu że jestem w błędzie. Nikt Ci tego nie zabroni. Ja mogę się mylić i sam nigdy nie będę mieć pewności, ale zawsze będę wiedzieć gdy ktoś próbuje mi wciskać taki bullshit.

 

Przypomnę też że nie można już wykonywać operacji draw, w tym rysowania na surface, nigdzie poza eventami draw. Tak, w większości będą one działać, ale nie wszystkie a nawet będę mogły powstawać artefakty.

 

Właściwym pytaniem jest po kiego to zmieniać na string?

Przecież cała kombinacja z wyświetlaniem polega na tym, aby liczby były wyświetlane bez nieważkich zer z przodu :)

Cała sztuczka polega na tym aby przechowywać w pamięci string (nawet jeżeli jest on wyliczany co step) niż wykonywać 10 operacji podnoszenia do potęgi i dzielenia.

 

No i zostawiając na koniec:

Bo w dziesiętnym licho się przez trzy dzieli. A w trójkowym niezmiernie wygodnie.
Nokia 3310 dłużej trzyma baterię od iPhone 6. I co z tego skoro nie o to pytamy?

Kolejna prowokacja do warna za odbieganie od tematu?

 

Jeżeli chcesz spróbować znaleźć optymalniejszy sposób, bo przypominam o to pytał MaxGaming, to proszę bardzo. Jeżeli nie to dalsza dyskusja będzie traktowana jako off topic. I to się tyczy każdego, nie tylko 3r3se7ven. Ten problem został rozwiązany. Zapraszamy do dalszych pytań.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak dodać kogoś do ignorowanych aby nie wyświetłały się jego głupości na temat "nie umiem wyłączyć draw event na czas obliczeń", "nie wiem jak zrobić fps w tysiącach i delta time w setkach"?

 

 

"

Przypomnę też że nie można już wykonywać operacji draw, w tym rysowania na surface, nigdzie poza eventami draw. Tak, w większości będą one działać, ale nie wszystkie a nawet będę mogły powstawać artefakty."

 

Nie no urwał, nie wytrzymam.

Żenada, aż szkoda komentować.

 

I co Ci się jeszcze wydaję? Że czego nie można?

 

Bredzisz, nie masz pojęcia o rzeczy a bredzisz.

 

Można każdy draw call wykonać w step event. Nawet odpalić sobie kilka zestawów d3d.

Jeden do rysowania tego co daleko, jeden do rysowania tego co blisko.

 

A jak byś niby zrobił supresję draw eventu na czas rysowania surface gdybyś te surface rysował w draw evencie?

 

 

Wracaj do szkoły artefakcie.

 

 

 

 

"Cała sztuczka polega na tym aby przechowywać w pamięci string (nawet jeżeli jest on wyliczany co step) niż wykonywać 10 operacji podnoszenia do potęgi i dzielenia."

 

Mhm... to wartości zmiennych są zapisane jako string, no no...

 

 

 

 

"Nigdzie nie widzę aby MaxGaming pytał o zamianę na system dwójkowy. Wręcz przeciwnie, pytał o optymalniejsze rozwiązanie od tego które sam używał."

 

A to że zmieniał z bin na dec i obciął zera to już zupełnie nikogo nie ciekawi :)

 

Ja już takie pytanie widziałem, i wiem o co pomysłowy autor zapyta później - jak zmienić te czcionki na obrazki - bo to zawsze zmierza w tym kierunku.

Odnośnik do komentarza
Udostępnij na innych stronach

@Up - Może i wiedzę jakąś masz, ale przydało by tobie się trochę pokory i taktu. Jesteś taki nadymany że się nie chce czytać.

Masz przykład funkcji która tylko działa w evencie draw:

 

http://docs.yoyogames.com/source/dadiospic...lear_alpha.html

 

I Threef ma rację. Kilka funkcji 'draw_' zostało w ten sam sposób zmienionych.

 

Przykre jest bardzo, z jakim podejściem traktujesz innych użytkowników. Jeśli naprawdę jesteś od nas bardziej dojrzały, pokaż to swoim zachowaniem.

Odnośnik do komentarza
Udostępnij na innych stronach

@Up - Może i wiedzę jakąś masz, ale przydało by tobie się trochę pokory i taktu. Jesteś taki nadymany że się nie chce czytać.

Masz przykład funkcji która tylko działa w evencie draw:

 

http://docs.yoyogames.com/source/dadiospic...lear_alpha.html

 

I Threef ma rację. Kilka funkcji 'draw_' zostało w ten sam sposób zmienionych.

 

Przykre jest bardzo, z jakim podejściem traktujesz innych użytkowników. Jeśli naprawdę jesteś od nas bardziej dojżały, pokaż to swoim zachowaniem.

 

Mylisz się, to polecenie świetnie działa w step (bo pół godziny temu go używałem, mam nadzieję że nic się nie zmieniło jeszcze).

 

Jeśli nie wiesz dlaczego niektóre funkcje się wysypią w step (a nawet w draw dla macierzy przygotowanej w step), to zawsze możesz przetestować wszystkie.

Bo owszem takie są. Chodzą na 24 bitach co czyni oczywistym dlaczego wysypują się poza draw.

 

 

A co do traktowania to konkretnie o co Ci chodzi?

Że ludzie nie myślą, a udają że to robią?

 

"dojżały"

Czy ta przypadłość jest zaraźliwa?

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób coś - i wróć do tematu z wiedzą praktyczną.

(...)

Przypominam że dyskutujemy o GMSie, w którym ostatnio poprawka popsuła floor(), no to już jest osiągnięcie w tworzeniu nowej algebry.

 

Nie mam nic więcej do powiedzenia.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chce mi się zakładać nowego tematu, więc pytam tu.

Mam problem, podczas kompilowania wystąpił mi bluescreen, przez co projekt się spsuł i podczas kompilacji wywala błąd kompilatora.

Okej, włączam backup(gdzie wszystko działało, nie wywaliło mi wtedy błędu), ale wszystkie bloki na planszy są niewidzialne(wszystko z parentem bloku), mimo, że to wszystko ma visible. To już nie pierwszy taki błąd, ale jak go naprawić, bo nie pamiętam jak se wcześniej z tym poradziłem XD

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nie znam konkretnej odpowiedzi, ale moze pomoze jedna z tych:

1. Clear Cache

2. Zmien Sprite

3. Usun wadliwego parenta, zrob i podepnij go na nowo

 

Byc moze bedziesz musial restartowac gma miedzy probami zeby faktycznie zadzialaly.

 

Jak nic nie pomoze zawsze mozna sprobowac nowy room zrobic.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chce mi się zakładać nowego tematu, więc pytam tu.

Mam problem, podczas kompilowania wystąpił mi bluescreen, przez co projekt się spsuł i podczas kompilacji wywala błąd kompilatora.

Okej, włączam backup(gdzie wszystko działało, nie wywaliło mi wtedy błędu), ale wszystkie bloki na planszy są niewidzialne(wszystko z parentem bloku), mimo, że to wszystko ma visible. To już nie pierwszy taki błąd, ale jak go naprawić, bo nie pamiętam jak se wcześniej z tym poradziłem XD

A ile masz ustawionę żeby Ci robił backupów? Może jeszcze wcześniejszy, a jak były duże zmiany to po prostu kod sobie z nowego(niedziałającego) projektu wczytaj.

Odnośnik do komentarza
Udostępnij na innych stronach

Nic nie rozumiem z DS.Przy okazji tego problemu mam nadzieję się nauczyć

 

Mam obiekty na mapie.W HUD mam kontrolera tych obiektów-okienko w którym wyświetla się aktywny obiekt do kontroli.Nad i pod okienkiem są strzałki góra-dół za pomocą których zmieniam aktywny obiekt.

 

Proste pytanie jak to zrobić?Obiektów jest 6- ale rzadko są na mapie wszystkie, bez jakiejś listy nie widzę opcji ale nie wiem jak się do tego zabrać.

 

Próbowałem coś w stylu

Create:

GML
global.statki=ds_map_create()

ds_map_add(global.statki, "zielony", 0)

ds_map_add(global.statki, "niebieski", 0)

itd. Tu miałem na celu stworzenie listy statków zakładając wartość początkową 0

 

następnie

GML
if (instance_exists(obj_zielony){ds_map_replace(global.statki, "zielony", 1)}

Aby określić czy dany statek jest na mapie

 

 

No i generalnie nie wiem co dalej...

Proszę o wytłumaczenie jak dla debila..

Odnośnik do komentarza
Udostępnij na innych stronach

Tu chyba latwiej Ci bedzie zrobic na ds_list.

GML
globalvar ZielonyList,NiebieskiList;

ZielonyList = ds_list_create(); //Stworz liste zielonych

NiebieskiList = ds_list_create(); //Stworz liste niebieskich

 

Statki powinienes dodawac jedynie przy ich STWORZENIU...

Jezeli statek jest zielony dodajesz jego ID do listy zielonych

GML
ds_list_add(ZielonyList,id); //Dodaj zielony statek

Ale jezeli juz z jakiegos powodu chcesz sprawdzic czy dany statek nie jest juz na danej liscie po prostu sprawdzasz funkcja...

GML
if ds_list_find_index(ZielonyList,id) = -1 //_find_index szuka POZYCJI w liscie na ktorej jest dana wartosc. Jezeli jej nie ma zwroci -1.

{ //Czyli jezeli chcesz sprawdzic czy obiekt jest juz na liscie sprawdz czy znajdzie index. -1 = Nie ma, Większe od -1 = Jest.

}

 

A ilosc dostepnych instancji? Sprawdzasz wielkosc listy.

GML
ds_list_size(ZielonyList);//Zwraca ile elementow jest zapisanych w liscie

Jak masz 1 zwroci 1, jak masz 10 zwroci 10. Tylko pamietaj ze (jak zwykle) liczenie zaczyna sie od 0, wiec jak masz 10 elementow to ich pozycje są od 0 do 9, a jak masz 1 to jego pozycja to 0...

GML
ds_list_find_value(ZielonyList,POZYCJA);//Wczytuje wartosc (id statku) z wybranej pozycji

 

Tyle Ci raczej starczy do sklejenia tego. Poczytaj w dokumentacji wiecej o ds_list

Odnośnik do komentarza
Udostępnij na innych stronach

Bardzo dziękuje, biorę się do pracy

 

 

edit.

 

Kombinowałem caly dzień i niewiele uzyskałem w sumie.Przedstawię sytuację jeszcze raz:

 

Mam na ekranie przełącznik którym wybieram aktywny obiekt spośród tych które aktualnie istnieją.Jest potencjalnie 6 rodzai obiektów- ale rzadko występują wszystkie.Zupełnie nie istotne jest ile jest obiektów danego rodzaju-liczy się tylko fakt czy jest co najmniej 1 czy go nie ma.Czyli jak są na ekranie statki czerwone i zielone - to mogę przełączać tylko miedzy nimi-inne przełączniki nie istnieją, ale jak pojawi się w grze niebieski to pojawia się też przełącznik możliwy do wyboru.

 

 

W związku z tym próbowałem

 

Obiekt przełącznika po kliknięciu w który będą się zmieniać przyciski odpowiadające istniejącym obiektom(dla testu tylko 3)

 

Create:

GML
list_id = ds_list_create()

i = 0

 

Step:

GML
obiekt=ds_list_find_value(list_id,i)

 

if (instance_exists(obj_blue_circ)){ds_list_add(list_id,obj_blue)}

if (instance_exists(obj_red_circ)){ds_list_add(list_id,obj_red)}

if (instance_exists(obj_black_circ)){ds_list_add(list_id,obj_black)}

 

Left pressed:

 

GML
if (instance_exists(obiekt)){with obiekt instance_destroy()}

 

 

instance_create(200,200,ds_list_find_value(list_id,i))

i+=1

 

if (i>3){i=0}

 

 

Póki co powiedzmy że jakoś to działa-ale jest problem że aby zaczeło się zmieniać prawidłowo trzeba za pierwszym razem nacisnąć na przycisk 2x- potem działa normalnie- dlaczego??

 

I kwestia najważniejsza : jak wygląda dostęp do DS list z innych instancji- czego bym nie próbował to próba wpisania do create obiektu

np "ds_list_add(list_id,obj_blue)" zamiast w stepie przycisku zawsze wywołuje błąd - nie ważne czy będą to global,var czy globalvar

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Póki co powiedzmy że jakoś to działa-ale jest problem że aby zaczeło się zmieniać prawidłowo trzeba za pierwszym razem nacisnąć na przycisk 2x- potem działa normalnie- dlaczego??
Może gdzieś indziej, na przykład w draw, używasz zmiennej i?

 

I kwestia najważniejsza : jak wygląda dostęp do DS list z innych instancji- czego bym nie próbował to próba wpisania do create obiektu

np "ds_list_add(list_id,obj_blue)" zamiast w stepie przycisku zawsze wywołuje błąd - nie ważne czy będą to global,var czy globalvar

Tworząc jakąkolwiek DS do zmiennej przypisujesz jej wewnętrzne ID.
GML
list_id = ds_list_create()
Jest to normalna zmienna przechowująca jakiś numer. Jeżeli chcesz się odwołać do tej DS innego obiektu musisz znać ten numer. Najnormalniej możesz zrobić to jak z innymi zmiennymi.
GML
ds_list_add(obiekt_ktory_stworzyl_ten_DS.list_id, obj_blue)
Odnośnik do komentarza
Udostępnij na innych stronach

Pewnie kod wykonuje się zanim w room pojawia się obj_control. Otwórz room i zobacz "instance creation order" ustaw odpowiednią kolejność.

 

Kolejność w jakiej obiekty wykonują swój kod zależy od tego który był pierwszy postawiony w room. w GM:S dodano właśnie w edytorze listę która to pokazuje i umożliwia nam zmianę tej kolejności bez usuwania obiektów.

Odnośnik do komentarza
Udostępnij na innych stronach

czy ktoś mi może łopatologicznie wyjaśnic czym dokłądnie jest ds_list czym się rużni od array i czy ds lista może być globalną?

 

Przypomnijcie mi jaka funkcja odpowiadała za zaokrąglanie wyniku? :D

I czy da się zrobić, by tylko w dół zaokrąglało?

round(x) Returns x rounded to the nearest integer.

floor(x) Returns the floor of x, that is, x rounded down to an integer.

ceil(x) Returns the ceiling of x, that is, x rounded up to an integer.

Odnośnik do komentarza
Udostępnij na innych stronach

czy ktoś mi może łopatologicznie wyjaśnic czym dokłądnie jest ds_list czym się rużni od array i czy ds lista może być globalną?
Nie jestem pewien jak dokładnie działają tablice w GM.

ds_list jest strukturą przechowującą zmienne. GM zajmuje się całym zarządzaniem nią. Sama funkcja create zapisuje w zmiennej adres struktury. Pod tym adresie GM rozpoznaje strukturę. Struktury są globalne ale zmienna w jakiej jest zapisany adres nie musi być.

 

Różnica będzie raczej taka że array przechowuje w pamięci całą swoją zawartość nawet pustą, ds_list przechowuje zbiór zmiennych i adresy do nich. Więc w array jak dodasz array[99] to wszystkie pola będą zajęte. W ds_list jak dodasz coś na pozycji 99 to reszta będzie pusta.

 

Przypomnijcie mi jaka funkcja odpowiadała za zaokrąglanie wyniku? biggrin.gif

I czy da się zrobić, by tylko w dół zaokrąglało?

A jakbyś chciał zaokrąglić do jakiejś liczby po przecinku to musisz zrobić małą sztuczkę.
GML
a=3.1415

b=round(a*100)/100

//b = 3.14

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Chcę żeby wróg uciekając omijał przeszkody i żebym widział drogę którą sobie obrał

Taki oto kod zrobiłem napisałem

 

GML
ucieczka=path_add()

mp_potential_path(ucieczka, instance_nearest(x,y,enemy_safezone).x, instance_nearest(x,y,enemy_safezone).y, 1, 8, false)

draw_path(ucieczka, x, y, true);

 

niestety, wróg kieruje się wtedy w stronę enemy_safezone i gra się zacina :(

Co robię nie tak?

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...