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:30.11.2012 19:42

Dobrý den,
měl jsem potíže s tím, jak správně maximizovat Canvas - kvůli deformování vykreslovaného objektu. Nyní to mám takto:

canvas.height = canvas.width = Math.max(document.documentElement.clientWidth - document.documentElement.clientWidth % tileSize, document.documentElement.clientHeight - document.documentElement.clientHeight % tileSize);
canvas.style.width = canvas.style.height = canvas.width + 'px';

Tedy nastavím největší maximální rozměr oboum a protože pozice je fixed, tak se mi nezobrazí scrollbary. Jenže dělám v políčkové grafice, a potřebuji nějak naložit s drobečky, které vzniknou po vytvoření políčkové sítě. Width pochopitelně nedělá problém, ale co s výškou? Tak jsem se chtěl vrátit k "width a height = 100%" a doufal jsem v atribut ratio, či tak, ale zdá se, že vykreslovací ratio vychází pouze z rozměrů. Jak bych to tedy měl řešit? Děkuji.

Editováno 30.11.2012 19:45
 
Odpovědět 30.11.2012 19:42
Avatar
matesax
Redaktor
Avatar
matesax:30.11.2012 19:48

Tedy o co jde - o hru had - nechci, aby mi had přecházel (průchoďák jako Pacman) před koncem stránky - bylo by to trochu blbé - tak chci přebytky doladit borderem.

Ještě to dovysvětlím - pohybuje se pouze po políčkách. Jídlo je pouze na políčkách - a chci se ptát, zda jídlo bylo snězeno - tak potřebuji aby Canvas měl rozměry přesně sedící pro políčkovou mřížku.

Editováno 30.11.2012 19:52
 
Nahoru Odpovědět 30.11.2012 19:48
Avatar
matesax
Redaktor
Avatar
matesax:1.12.2012 6:08

Vyřešeno. Vykreslovací ratio sice vychází z rozměrů - ale deformace z jejich nesouhlasu - nyní tedy mám:

canvas.width = document.documentElement.clientWidth - (document.documentElement.clientWidth % tileSize);
canvas.height = document.documentElement.clientHeight - (document.documentElement.clientHeight % tileSize);
canvas.style.width = canvas.width + 'px';
canvas.style.height = canvas.height + 'px';

A zdá se to být OK.

Editováno 1.12.2012 6:09
 
Nahoru Odpovědět 1.12.2012 6:08
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 3 zpráv z 3.