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.
Tvůrce
Zobrazeno 17 zpráv z 17.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.