Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
matesax
Tvůrce
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
Tvůrce
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
Tvůrce
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.