Avatar
matesax
Redaktor
Avatar
matesax:

Dobrý den,
mám dotaz k animovaným spritům - nehledím na čas, energii, atd... Ale na výkon - co je lepší? Mnoho malých cílených obrázků - a šikovně pojmenovaných, nebo jeden velký a neustále z něj vyřezávat? První možnost mi přijde jako ta lepší vatianta - obrázek se jednou načte (a ne, že se neustále tvoří) a pak už není náročné jej vytáhnout z pole, kam si ho uložím. Děkuji.

Editováno 27.12.2012 18:51
 
Odpovědět 27.12.2012 18:49
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na matesax
Drahomír Hanák:

Je mnohem rychlejší mít jeden obrázek a z něho vyřezávat. Většinou mívám pro jednu entitu jeden obrázek. Ideální stav by byl jeden obrázek, ve kterém bys měl úplně všechno. Když si k tomu napíšeš třídy, manipuluje se s nimi snadno. Můžeš se podívat, jak to dělám třeba tady: https://github.com/…tionSheet.js#L79 Pak mi stačí zavolat sheet.addNode('run', [1, 2, 3, 2]); a mám hotovou animaci.

EDIT: tady je to vyřezávání podle indexu. Neuvědomil jsem si, že to používá metodu předka: https://github.com/…ics/Image.js#L95

Editováno 27.12.2012 20:08
 
Nahoru Odpovědět 27.12.2012 20:05
Avatar
matesax
Redaktor
Avatar
Odpovídá na Drahomír Hanák
matesax:

Já nemám problém s výřezem pracovat - ale když si vezmu, že výřez se opakovaně provádí, kdežto jeden cílený obrázek se pouze jednou načte...

Tedy načítání hry ať se klidně provádí krapet déle - snažím se tam nacpat většinu náročných operací - ale v průběhu hry chci přeci co nejmenší náročnost - proto se zde ptám - i když si myslím již teď, že vykreslovat načetlý obrázek je méně náročné, než jej teprve vytvářet...

Editováno 27.12.2012 20:13
 
Nahoru Odpovědět 27.12.2012 20:10
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na matesax
Drahomír Hanák:

Teď to moc nechápu. Vždyť právě víc obrázku musíš načíst více krát a musíš je víc spravovat. Když je ale dáš do jednoho spritu a jen posunuješ výběr, stačí ti jedno načtení celého spritu. Čím víc máš obrázků při vykreslování, tím je to náročnější.

 
Nahoru Odpovědět 27.12.2012 20:28
Avatar
matesax
Redaktor
Avatar
Odpovídá na Drahomír Hanák
matesax:

No jak to? Načtu do pole a z něj vybírám... Jednou načtu a pak jen manipuluji s indexy...

 
Nahoru Odpovědět 27.12.2012 21:18
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na matesax
Drahomír Hanák:

Jde tu hlavně o to načtení. Když máš jeden sprite, načteš ho rychleji, jak 100 samostatných obrázků. Při vykreslování pak spravuješ jednu instanci Image, místo několika set a to taky bude mít vliv na výkon.

 
Nahoru Odpovědět 27.12.2012 21:48
Avatar
matesax
Redaktor
Avatar
Odpovídá na Drahomír Hanák
matesax:

Nuže dobrá - jdu se s tím poprat... :)

 
Nahoru Odpovědět 27.12.2012 21:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.