Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Možnost větších levelů a jejich posouvání a zoomování dotyky, #4

Closed
PetrVobornik opened this issue May 26, 2022 · 4 comments
Closed
Assignees
Labels
enhancement New feature or request

Comments

@PetrVobornik
Copy link
Owner

Mapu levelu nelze vytvořit s takovými rozměry, aby vždy přesně pokryla všechny typy zařízení, na kterých může být hra spuštěna. Bylo by tedy vhodné, aby se plocha zařízení mohla využít tím, že mapu bude možné libovolně zvětšovat či zmenšovat dotykovým gestem Pinch-to-zoom (popř. kolečkem na myši), díky čemuž bude možné vytvářet i rozměrnější levely.
image

Zvětšenou mapu (její výřez, který se aktuálně vejde do obrazovky/okna) by pak mělo být možné posouvat pomocí gesta (myši) drag&drop.
Obě tyto funkce by měly mít nějaké rozumné minimum a maximum (to by nemuselo vést ke zvětšování textur, tj. max měřítko 1), přičemž by např. nemělo být možné mapu "odtáhnout" za hranici zobrazovaného prostoru, aby byla zobrazena pouze černá/prázdná plocha. Zmenšení by pak nemělo jít pod hranici, kdy by obě strany mapy byly menší než obrazovka.

Za tímto účelem bude nezbytné osamostatnit ovládací panel, který by měl být roztažen přes celou šířku obrazovky a tomuto zoomování + posouvání nepodléhat. Musí se též vždy nacházet nad mapou a být započten (odečten) do minima pro měřítko a posun (aby spodní řada mapy nezůstávala pod ním).

@PetrVobornik
Copy link
Owner Author

PetrVobornik commented May 27, 2022

Vyřešeno během streamu 28 části: Zoomování mapy zatím funguje přes klávesnici (OemPlus a OemMinus) a myš, když se stiskne kolečko a kurzor se posouvá. Posun mapy funguje pouze s myší, při stisku pravého tlačítka a posunu kurzoru. Zbývá dořešit následující "drobnosti":

  • Vyřešit problém s posunem doleva či nahoru (nejde až k pravému či dolnímu okraji, zřejmě chyba ve výpočtu rozměru obsahu ku rozměru obrazovky/okna).
  • Ovládací panel by se zoomovat a posouvat neměl, ale měl by zůstávat vždy dole přes celou šířku, být nad mapou a ta by skrz něj neměla být vidět.
  • Přidat podporu i pro dotyky.

@PetrVobornik
Copy link
Owner Author

PetrVobornik commented May 27, 2022

Posouvání mapy k pravému či dolnímu okraji:
Jelikož se posun při vykreslování provádí dříve než změna měřítka, bylo třeba jej tímto měřítkem do transformační matice vydělit.
A aby se při zmenšení mapy nedostala posunutá mapa mimo obraz, tak se tento přepočet posunu provádí i při požadavku na změnu měřítka.
Zbývá tedy dořešit ovládací panel a dotyky.

@PetrVobornik
Copy link
Owner Author

Část vyřešená během streamu 29 části. Dotyky pro zoomování a posun mapy jsou již podporovány. Ovládací panel je vyřešen zatím jen částečně (při zoomu se mění nedrží vertikální polohu), a také je třeba jej podbarvit, aby pod ním neprosvítala mapa.

PetrVobornik added a commit that referenced this issue Jun 1, 2022
@PetrVobornik
Copy link
Owner Author

  • Off screen (změny kódu lze porovnat v commitu 076dc65) doladěno ukotvení ovládacího panelu.
  • Přidáno bylo i jeho pozadí a rovnou i pozadí (překrytí) po pravé straně mapy.
  • Jeho zdroj je upravená verze obrázku ukazatel.png, který teď obsahuje pouze bílý panel, jež lez obarvit na libovolnou barvu (včetně dříve používané zelené, červené a nově světle černé).
  • Pro spouštění UWP/Android hry kampaně/editoru přidána třída Navigace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant