NicharCZ napsal k Eventy (události):
Díky za upřesnění! :) - Trvalý odkaz
D-Sheep napsal k Eventy (události):
U události Draw bych chtěl upozornit na to, že v každé instanci se vykoná tolikrát za sebou, kolik je v místnosti viditelných viewů! Pokud budu přičítat při stisknutí myši k nějaké proměnné +1 v události Draw a budu mít dejme tomu 3 viewy, přičte se za jeden cyklus událostí (step) do proměnné +3. Mě to dost trápilo a doufám, že tenhle malý komentář někomu pomůže. - Trvalý odkaz
NicharCZ napsal k GML - Tipy a triky:
Je fakt, že si neuvědomuji, které řešení je rychlejší. Já osobně to používám pokud je to jediný příkaz. Na druhou stranu, když mám více příkazů a více podmínek, ak jedu klasicky s "if". Komentáře typu "prasácký" nebo "odstašující" prosím vynechte ;) Odstraňovat to rozhodně nehodlám, z prostého důvodu. Začátečník to uvidí a ví prd, co to dělá. Na vaše žádosti přidám doplňující info. - Trvalý odkaz
Hnidopich napsal k GML - Tipy a triky:
if(x<100)x+=1 není ani zdaleka to samé jako x+=(x<100), rozhodně to nemá co dělat v tutorialech pro začátečníky, který to tady uviděj a budou to používat. Zrovna tady musím vysvětlovat kolegoj, jaká je x+=(x<100) příšerná prasečina. Opravte prosím článek, nebo ho alespoň označte jako odstrašující příklad :-) - Trvalý odkaz
Frooxius napsal k GML - Tipy a triky:
NicharCZ: To není tak úplně pravda, ono to není jiný způsob zápisu, ono je to v podstatě jiný kód, který se sice chová stejně, ale má jiné důsledky a je i pomalejší.
Je třeba si uvědomit, co vlastně ten kód skutečně dělá.
Pokud napíšeš
if x<100 {x+=1}
Tak to nejprve provede vyhodnocení výrazu "x<100", kdy výsledkem je nějaká boolean hodnota (pravda či nepravda), která se následně použije k rozhodnutí, jestli spustit kód, který provádí přičítání hodnoty k proměnné.
Když ale napíšeš
x+=(x<100)
Tak se opět nejprve vyhodnotí výraz "x<100", jenže kód na přičítání se spustí vždycky. Když je x menší jak 100, tak hodnota výrazu bude "true", čemuž odpovídá číslo "1", jinak "false" čemuž odpovídá číslo 0. Problém je, že v obou případech se bude operace sčítání spouštět. Tzn. dokud bude menší jak 100, tak se bude přičítat jednička a pak dokola pořád nula. Tzn. budeš v podstatě zbytečně pořád přičítat nulu k té samé proměnné (přičíst nulu trvá stejně jako jedničku, či jakékoli jiné číslo stejného datového typu), dokola a dokola a úplně zbytečně, kdežto u první verze se kód přičítání přestane zcela spouštět a v tom je ten podstatný rozdíl, proto bych se zásady tu druhou metodu nepoužíval. Další zákeřná věc se kterou by jsi se mohl setkat u jiných jazyků a prostředí je, že true se nemusí rovnat jedničce, ale čemukoliv nenulovému, třeba i 255, takže by jsi skončil s x = 255 ale to už je trochu mimo téma.

