Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
matesax
Redaktor
Avatar
matesax:27.12.2012 18:49

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:27.12.2012 20:05

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:27.12.2012 20:10

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:27.12.2012 20:28

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:27.12.2012 21:18

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:27.12.2012 21:48

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:27.12.2012 21:53

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.