Jak na přehledný kód?
Proměnné a jejich názvy
spr_hlavni_hrdina, spr_pomocnik, spr_zbran označují proměnné do kterých se ukládají sprity hlavního hrdiny, jeho pomocníka a zbraně.
Obdobně:
obj_hrac, obj_zbran, obj_lektvar označují objekty – na první pohled tak v kódu poznáme zde se jedná o objekt, sprite, zvuk atd.
Prefixy (předpony) pro pojmenování si lze vytvořit i vlastní, já sám s oblibou používám:
o_ nebo obj_ pro objekty
spr_ pro sprity (png soubory s 256stupni průhlednosti)
s_ nebo snd_ pro zvuky (typicky wav formát)
mus_ pro hudbu na pozadí (typicky mp3 formát)
bg_ pro pozadí
room_ nebo r_ pro místnosti
scr_ pro skritpy
tile_ nebo t_ pro tileset
tyto prefixy umožňují na první pohled odhalit o co že se vlastně v kódu jedná.
U vymýšlení názvů proměnných neexperimentujeme. Proměnná by měla být pokud možno krátká - budeme s ní pracovat a párkrát ji určitě do kódu naťukáme. Proměnná by měla být jednoznačná - výstižná, ale přitom srozumitelná:
např. muze_strilet nebo can_shoot - tak takovou proměnnou ano, ale třeba can už ne (co to je? k čemu se to vztahuje?) a cn jako zkratka pro can už rozhodně ne, potom v tom je binec ;)
Diplomaticky řečeno - proměnná by měla být krátká, ale tak dlouhá, aby byla jednoznačná, nezaměnitelná a vše vysvětlující :)
Názvy by neměly obsahovat mezery (ty lze nahradit podtržítkem), diakritiku, speciální znaky ani číslo na začátku.
Namísto desetinné čárky se zapisuej desetinná tečka. Takže hodnotu 1,6 zapíšeme jako 1.6
Nemícháme české a anglické názvy dohromady - to že to není "navenek" vidět, není oprávnění to takto zapisovat. Kdo si pak má vzpomenou, jestli se ta proměnná jmenovala stity_actual nebo shields_aktualne? Jazyky nemíchat.
To stejné pak platí i pro texty a třeba menu - máloco zatahá za oko tak jako "hrát hru", "nastavení", "credist" a "quit".
Optické členění kódu
V kódu umisťujeme logicky mezery, používáme odřádkování, odsazení.
if hloubka_ponoru = 1
{
draw_sprite(spr_ponorka, -1, x, y);
draw_circle(x, y, 300, 1);
}
Kód shlukujeme do bloků. Pro blok slouží buď ikonky fialových trojbokých zarážek nebo se blok zapisuje jako kód ve složených závorkách {kód umístěný do bloku;}
Komentáře ke kódu
Kód si průběžně komentujeme.
Pro jednořádkový komentář slouží znaky // vše co je za dvojicí lomítek na jednom řádku, program ignoruje a nám umožní orientaci.
Pro víceřádkové komentáře slouží zápis
který si můžeme dovolit
rozepsat na více řádků,
protože vše co je mezi hvězdičkami a lomítky program
jednoduše ignoruje
*/
vše co je mezi znaky /* a */ program ignoruje. Tento zápis umožňuje vytvářet i delší, strukturované komentáře.
Za spoustu tipů a poznatků děkuji chylexovi, článek je dobrou polovinou i jeho dílem.
Další tipy budou průběžně doplňovány. Máte vlastní? Podělte se v komentářích. Zároveň tímto děkuji autorům komentářů, dle jejich poznatků a postřehů je článek aktualizován.
Komentáře
Přidat nový
Pro přispívání musíte být přihlášen
Zapsal Bullet catcher - 21.04.2010 16:16
Tak například v PHP to dělám, takže o to nejde.
Zapsal keksa - 20.04.2010 21:41
Bullet catcher: řeknu ti to takhle: gml přímo nevyžaduje ukončování řádků středníkem, ale v každém programovacím jazyku je to vyžadováno a pokud tam nebude tak se ti program nezkompiluje/nespustí, takže je lepší si na to zvyknout už teď, než na to potom zapomínat u jiných prog.jazyků
Zapsal Bullet catcher - 20.04.2010 21:03
V čem to je potom jiné, když se píše středník nebo ne? Myslím pro GM, napsali jsme, že se mu to asi nelíbí. Stručně někdo prosím napište proč :)
Zapsal velda898 - 07.04.2010 16:46
Skvělej článek. Ale já mám osobně hodně problém ho dodržovat. ale musím říct že se lepším. ale // a /* */ používám jenom na dektivování nějkýho příkazu když si nejsu jistej jestli ho ještě budu potřebovat.
No co můžu doporučit já krom toho co je víš psát podmínku se závorkama:
if (hloubka_ponoru = 1)
{
protože pokud vím tak jedině pak stačí dát pro negaci vykřičník a je to i přehlednější. ;-)
Zapsal bildo - 07.04.2010 08:01
Pekny clanek, pro novacky a mozna i nektere pokrocile se bude urcite hodit. Ja sam se snazim delal takhle, sice nekdy v navalu mnozstvi napadu na kod na to trosku zapomenu, ale jinak se snazim mit kod prehledny. :)
Zapsal Matt Samyel - 07.04.2010 06:47
Dobrý, :) sám to takhle dělám, akorát ty názvy proměnnejch vymejšlim úplně špatně :D
Ještě bych doplnil, že názvy by neměly obsahovat mezery(nahradit podtržítkem), diakritiku, speciální znaky ani číslo na začátku :) A že desetinný čísla se píšou s tečkou, ne s čárkou :)



