.[ ČeskéHry.cz ].
Editor hry a zoom sceny (XNA)

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Jefo



Založen: 02. 07. 2011
Příspěvky: 58

PříspěvekZaslal: 30. červenec 2013, 18:13:06    Předmět: Editor hry a zoom sceny (XNA) Odpovědět s citátem

Ahoj,
tak sem pisem znovu. Robim si teraz editor hry. Rozhodol som sa tak ze som celu hru prepol do okna a po bokoch som si vytvoril este dalsie formulare kde som si nahadzal vsetky potrebne komponenty aby som ich nemusel programovat rucne v XNA. Teraz len programujem funkcionalitu. Potreboval by som spravit zoomovanie na scenu. Pouzivam "orthographics" projekciu teda vsetky objekty su rovnako velke bez ohladu na to ako su daleko od kamery. SpriteBatch triedu som nepouzil. Miesto toho som si nakreslil z dvoch fejsov obdlznik a nan som natiahol texturu. Potreboval by som teraz naprogramovat zoomovanie no neviem ako na to. Viem ze je na zvacsovanie a zmensovanie trieda "Matrix.CreateScale()" no neviem ze ako ju pouzit. Comu mam vlastne tu maticu priradit ? Pomoze mi prosim niekto s touto ulohou ? Dik
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Dlaha



Založen: 30. 07. 2007
Příspěvky: 598
Bydliště: Olomouc

PříspěvekZaslal: 30. červenec 2013, 19:08:04    Předmět: Odpovědět s citátem

Maticí, kterou ti vrátí metoda Matrix.CreateScale() vynásob world matrix.
Jinak to je dobrý nápad, s těma formulářema kolem XNA okna. Funguje to bez problémů, nenarazil jsi na žádné komplikace?
_________________
Other Inside
Greenlitnuto!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Jefo



Založen: 02. 07. 2011
Příspěvky: 58

PříspěvekZaslal: 30. červenec 2013, 21:01:32    Předmět: Odpovědět s citátem

Ok. uz mi to zoomovanie funguje. Zatial s tym nemam ziadne problemy.Celu hru mam ako jeden singleton. V nom mam vsetky objekty hry aj formulare.
Robim to tak ze si napriklad dam na formular label a napisem mu public metodu "NastavLabel(string text)". V nej mu uz len priradim text ked potrebujem vypisat napriklad FPS. Nastavujem to takto
kód:

Game1.Instancia.Formular.NastavLabel(FPS.ToString());

Ked potrebujem vytvorit napriklad nepriatela tak si ho po stlaceni tlacitka vytvorim cez volanie konstruktoru a nastavim jeho parametre. nasledne ho pridam do sceny takto
kód:

Game1.Instancia.DatabazaHernychObjektov.PridajObjekt(nepriatel);

Ked potrebujem pohnut svetom doprava tak mu napisem po stlaceni tlacitka
kód:

Game1.Instancia.HernySvet.PosunDoprava(posun_o);

Vsetko ide zatial v pohode. Ja sa programovaniu zatial venujem iba vo volnom case a neni som ziaden guru. Snazim sa robit tak ze hlavne aby to islo a o nejaku extremnu strukturu programu sa nejak extra nestaram.
Vsetky objekty hry su uzko viazane na tento konkretny projekt a keby chcem nejaky objekt pouzit v nejakej odlisnej aplikacii tak by som ho musel celu triedu upravit na tu konkretnu aplikaciu lebo to mam dost zbesilo poprepajane.A este jedna vec. Ked som nastavoval projekciu musel som tam zadat rozlisenie obrazovky take ake je konecne vo fullscreene. nedaval som tam rozmery z GraphicsDevice.ViewPort.Width a Height lebo potom su objetky trosku na inych miestach ako by mali byt. ked tam nastavim to rozlisenie tak vsetko sedi a mozem sa zacat hrat s rozlozenim objektov na scene.vychadzam totis niekedy od suradnic stredu sceny.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
saarix



Založen: 09. 08. 2012
Příspěvky: 32

PříspěvekZaslal: 31. červenec 2013, 06:36:15    Předmět: Objekty Odpovědět s citátem

Dost pěkně udělané Smile Tenhle styl objektů jsem v XNA jestě neviděl a vypadá to dost slibně.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Dlaha



Založen: 30. 07. 2007
Příspěvky: 598
Bydliště: Olomouc

PříspěvekZaslal: 31. červenec 2013, 07:36:38    Předmět: Odpovědět s citátem

Je zvláštní, kolik lidí takhle používá singletony, je tady o tom už i diskuze: http://www.ceske-hry.cz/forum/viewtopic.php?t=3393

Když jsem ten návrhový vzor objevil, tak jsem z něj byl taky hrozně nadšen. Ale teď ho používám jen pro logování, nikde jinde mi velkou výhodu nepřinesl.
Tím rozhodně ale neříkám, že je tvoje řešení špatné.


Ten editor se mi ale vážně líbí, mi jsme si udělali normální formulářovou aplikaci a container pro XNA GraphicsDevice, který se na ní dá prdnout. Funguje to dobře, ale mrzí mě, že mě nenapadlo to co tebe, ušetřili bychom si nějakou práci.
Přesně jak říkáš, taky jsme si nechtěli psát GUI v XNA, navíc C# má i jako komponentu ObjectInspector, takže se dají hrozně snadno editovat vlastnosti jakéhokoliv herního objektu.
_________________
Other Inside
Greenlitnuto!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna