Diskuze: XNA- načítaní obrázků
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
public SpriteBatch spriteBatch;
public Texture2D background;
protected override void LoadContent()
**{
spriteBatch = new SpriteBatch(GraphicsDevice);
background = Content.Load<Texture2D>(@"Cesta");
}**
protected override void Draw()
**{
spriteBatch.Draw(background,new Rectangle(poziceXova,poziceYova,background.Width/2,background.Height/2),Color.White); //Zmenšení na polovinu
spriteBatch.Draw(background,new Rectangle(poziceXova,poziceYova,background.Width*2,background.Height*2),Color.White); //Zvětšení 2x
}**
Jinak to nevim v čem je problém, mi to načítá obrázky normálně ve velikosti jaké jsou.
Problém je, že to co se vykresluje (když je to zmenšené) neodpovídá tomu z čeho se vypočítávají kolize:
Color[] blockTextureData = new Color[blockTexture.Width * blockTexture.Height];
blockTexture.GetData(blockTextureData);
Čili obrázek je vykreslen s poloviční velikostí, ale kolize se počítají z toho původního nezmenšeného. Tím pádem hra nefunguje.
Aha tak to nevim jak to vyřešit zkus Stack Overflow třeba ti tam někdo poradí. Popř. zkus nahrát nějaký jiný obrázek a jestli ten nedělá to samé.
Nejlepší řešení by bylo vyprdnout se na scale uvnitř hry a textury ukládat už v požadované velikosti. Ušetřil by sis tím práci.
Jinak by bylo potřeba zmenit velikost dané textury kódově a pak zní až tedy vytáhnout ty data aby odpovídaly.
No to me taky napadlo, ale je to podle me dosti neprakticke mit vsechny objekty (obrazky) ze hry s danou velikosti.. pak bude potreba neco zmensit a budu muset zmensovat obrazek. Nevis, jak tu velikost zmenit kodove?
Hele XNA mám doma, tak když dnes nezapomenu, tak si to otevřu amrknu se ti

tady se nabízí nechat si to vykreslit se správným rozměrem do textury a tu pak používat pro detekci
a nebo použít jinou techniku pro kolize, ale záleží jak ten obrázek vypadá
A to uložení/vykreslení do textury by se udělalo jak? Jinak bude se hrát za vlka (dejme tomu, že bude vypadat třeba takhle). Okolí (herní svět) by měla být prostě krajina, kopce atd..
No aby postava mohla chodila po kopci.. přeci potřebuji nějak ignorovat při kolizi plochy, které mají alba = 0.
aby chodila tak ti kolem ní stačí obdélník a nepotřebuješ dělat náročné kolize pixel po pixelu, pixel na pixel se používá třeba až když bys chtěl střílet, nebo něco co se nevyskytuje tak často
Teď nějak nechápu. Potřebuji přeci nějak detekovat prostředí, třeba ten kopec..
Zobrazeno 17 zpráv z 17.
