NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 5 - Rozdělení MonoGame hry do komponent

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Mini
matesax:8.12.2012 18:13

Načti ty textury do pole a měň indexem...

Avatar
Mini
Člen
Avatar
Mini:8.12.2012 18:23

asi to špatne vysvětluji.
LoadContent()
{
mrak = hra.Content.Lo­ad<Texture2D>(@"o­brazky\mrak");
base.LoadContent();
}
zapnu načte se mrak.
Když ale udělám místo té cesty k textuře mraku, např (@"obrazky\co­koliv");
Tak se poté zase vykreslí mrak. A zkoušel sem odkazovat na věc která neexistuje např nějaký blábol a stejně to šlo a zase se vykreslil mrak.

Odpovědět
Jste dobří jen v tom, co vás baví.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Mini
matesax:8.12.2012 18:33

Po kolikáté? LoadContent se provede jen jednou... Je to načtení... Načti všechny obrázky do proměnných a popř. ty, mezi kterýma budeš přepínat do pole. Přepínat pak budeš moci snadno int proměnnou.

private int index = 0;
private Textrue2D[] frames = new Texture2D[size];

... Load(...)
{

     frames[0] = hra.Content.Load<Texture2D>(@"obrazky\mrak" -> musí být přidán v Content);
     frames[1] = hra.Content.Load<Texture2D>(@"obrazky\xxx" -> musí být přidán v Content);

...Update(..)

if (ma se prepnout)
     index++;

...Draw(...)

xxx.Draw(frames[index], ...);
Editováno
Avatar
matesax
Tvůrce
Avatar
Odpovídá na matesax
matesax:8.12.2012 18:38

Jestli načítáš v komponentce používej Game - to nikam není třeba ukládat - to už je samotné vlastnost... (nechápu původ proměnné hra - jestli je to jen tak, či co...)

Avatar
Mini
Člen
Avatar
Mini:8.12.2012 18:46

Mam třídu Hra kde volam všechny komponenty.
Mylsis ze je problem v tom?

private Hra hra;
private Texture2D Zem;
public Zem(Hra hra)
: base(hra)
{

}
Misto té moji Hry mam dat Game jo?

Editováno
Odpovědět
Jste dobří jen v tom, co vás baví.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Mini
matesax:8.12.2012 19:02

Místo hra má být hlavně game... (To je hlavní třída - ty z ní dědíš.) Ne - to s tím nesouvisí - nesnáším Češtinu v kódu - a mám na mysli to, že komponentka má vlastnost Game - od ní se dostaneš k nadřazené třídě Game - takže v komponentce načítáš Game.xxx a v hlavní třídě Game rovnou - popř. s this, tak nechápu, kde bereš tu proměnnou hra... Ale jak jsem psal - LoadContent je volán jednou - z konstruktoru - viz. object browser - takže tam načítáš všechny obrázky - najednou - ne uprostřed hry...

Editováno
Avatar
Mini
Člen
Avatar
Mini:8.12.2012 19:12

Takže mam všechny textury načíct hned v té mé tříde Game (kde volam komponenty) a potom už jen volat načtenou texturu? Chapu to dobře?

Odpovědět
Jste dobří jen v tom, co vás baví.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Mini
matesax:8.12.2012 19:26

Je jedno jestli to načteš z komponentky, či přímo z Game - tak jako tak se to provádí v Game.Load. A ano - vše načítáš v load - pak to jen voláš. Proto když chceš udělat pás obrázků, mezi kterýma chceš měnit, udělej pole - viz. má ukázka...

Avatar
United121CZ
Člen
Avatar
United121CZ:26.8.2013 22:48

Nedaří se mi jakýmkoliv způsobem zavolat "spritebatch"(v Draw) v komponentě zkoušel jsem snad vše ( game. , Game. , Hra. , hra. )nic z toho nemá v nabídce spriteBatch a to jsem dělal vše podle toho co tady je napsaný ... nevíte kde může být problém ?

Avatar
abushrek
Člen
Avatar
abushrek:11.6.2015 21:08

Zdarec chtěl bych se zeptat, kde patří:
Components.Ad­d(mraky);
Components.Ad­d(level);
Zkoušel jsem to dat do do všech metod, ale padá mi to na vyjímku ArgumentException.

Edit: Tak už mi to jde moje blbá chyba...(chybama se člověk učí) :)

Editováno
Nejnovější komentáře jsou na konci poslední stránky.
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 10 zpráv z 35.