Diskuze: XNA tutoriály

C# .NET .NET (C# a Visual Basic) XNA tutoriály American English version English version

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Již několik dní si hraji s XNA a začínám se v tom docela dobře orientovat. Jeslti vše půjde podle plánu, objeví se zde kompletní seriál na hru v XNA včetně odesílání skóre na internet, herního menu, efektů a tak podobně.

Odpovědět 11.9.2012 15:01
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
user
Redaktor
Avatar
user:

mohu vědět co to bude za hru? :) Já jinak dělám obdobu hry Brick Breaker. Jsem tak v polovině, až bude hotová, mohu jí zde publikovat...

 
Nahoru Odpovědět 11.9.2012 15:09
Avatar
albertpatera
Redaktor
Avatar
albertpatera:

taky by ě docela zajímalo

 
Nahoru Odpovědět 11.9.2012 15:23
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Můžeš, jedná se o Tetris :) Říká se, že kdo naprogramuje Tetris, tak je programátor. Je tam dost logických úloh, mám i hezkou grafiku v robotickém stylu, podílel se na tom i David Jančík [sczdavos].

Jsem také asi v polovině :D O hru určitě máme zájem.

Nahoru Odpovědět 11.9.2012 16:00
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Opět jsem trochu pokročil s XNA hrou, seznamuji se s komponentovou architekturou a programuji manažer přepínání herních obrazovek. Hra bude mít opravdu vše, co se sluší a patří, včera jsem dokončil skrolující text v části Autoři, který využívá clipping a načítání ze souboru (samozřejmě ve formě komponenty). Jako obrázek přikládám malou ochutnávku z webové části pro výpis nahraného skóre hry, na této části momentálně dělám. Celá hra bude brzy vydána jako seriál několika tutoriálů pro XNA :)

Nahoru Odpovědět  +1 21.9.2012 14:11
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Dnes jsem dokončil alfa verzi hry. Zítra začnu čistit zdrojové kódy, již bych neměl narazit na žádný zásadní problém, potom se objeví seriál 8-)

Nahoru Odpovědět 22.9.2012 22:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

jo super, tesim se na nejaka tva reseni, ktere jsem jeste neresil :) , napr. online score. Jak jsi teda nakonec vyresil tu spravu komponent? Prisel jsi na nejaky lepsi zpusob? Ja ted vlastne taky prevadim vetsinu na komponenty, je to strasna otrava :) Hru ale nemam jeste celou hotovou.

 
Nahoru Odpovědět 22.9.2012 22:51
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Online skóre funguje na stahování XMLka, odeslání normálně GETem. XML naparsuji a nastránkuji v příslušné komponentě.

Správu komponent jsem vyřešil jak jsme říkali, herní obrazovka obsahuje list komponent, které využívá. Ostatní se potom disablují v tom listu Components hry (jsou tam tedy stále, jen nejsou vidět a nic nedělají). Jako hezký vedlejší efekt je, že si každá obrazovka udržuje stav, v jakém ji hráč opustil. Pokud ji chci pak resetnout, použiji událost OnEnabledChanged.

Také jsem hru převáděl do komponent a málem jsem u toho umřel, chvíli to vypadalo, že to vůbec nedodělám :D Soucítím s tebou. Nakonec využívám oba přístupy, ten komponentový i ten objektový. Komponenty používám ve chvíli, když je ta část co programuji samostatná a má co nejméně závislostí. Objekty používám tam, kde jsou součástí nějaké další logiky a byl by problém vše zadrátovat. Co jsem viděl nějaké ty XNA hry, tak mám architekturu docela hezkou a to si myslím, že není nic extra :) Komponentám předávám v konstruktoru instanci mé konkrétní hry, tedy jsem přepsal to Game na mou třídu s hrou. Mám potom přístup k public věcem jako obsluze klávesnice, sprite batchi, metodě ke změně obrazovky a podobně.

Mám tam ještě nějaký problém s vymazáním bufferu klávesnice při změně obrazovky, snad to nějak vyřeším :)

Editováno 23.9.2012 10:43
Nahoru Odpovědět 23.9.2012 10:42
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

:) spravu komponent jsem si udelal stejne, jen mi ty komponenty nekdy prijdou takove moc samostatne :) vsechny vlastne bezi "zvlast" vedle hry, (coz je vlastne jejich ucel, ale bylo by dobre kdyby v pristi verzi XNA, komponenty byly trochu vic "zasazene" do hry, mohli by mit take vylepsenou komunikaci mezi sebou). Kdyz chci komunikovat mezi komponenty, musim prave pres instanci me hry... Precijenom to ale neni nic zasadniho a nejak resit se to da...

pzn: docela se divim, ze v XNA neni udelano vice vetsich projektu, zatim jsem jich videl par...

Editováno 23.9.2012 11:50
 
Nahoru Odpovědět 23.9.2012 11:47
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Jo, XNA je třeba brát opravdu jen jako framework, není to engine. Člověk si nad tím musí vybudovat vlastní architekturu. Komponenty jsou super na oddělené věci, třeba menu, credits, skóre a podobně. Ve hře je lepší dělat objekty kvůli těm závislostem. Teoreticky ti ale nic nebrání předávat něco v konstruktoru. Komponenta by mohla být třeba Nepřátelé, která by dále vykreslovala objekty Nepritel a zapouzdřovala by nějakou logiku kolem toho :)

BTW nestalo se ti někdy, že ti hra po ukončení spadla na něco jako "access to protected memory?" V trace je audio, občas mi to udělá, ale neměla by to být moje chyba, skoro to vypadá jako bug. Vygooglil jsem pár vláken s tím samým problémem, ale žádné řešení.

Nahoru Odpovědět 23.9.2012 14:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

S timto problemem jsem se jeste nesetkal...

 
Nahoru Odpovědět 23.9.2012 14:38
Avatar
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

Ted mam takovy problem, kdyz prevedu "prvek" na komponentu, vykresluje se vzdy na vrchni vrstve i kdyz vrstvu zmenim... Nesetkal si se s tim? :)

 
Nahoru Odpovědět 23.9.2012 14:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Komponenty by si měly udržovat pořadí takové, v jakém byly přidány do Game.Components.

Nahoru Odpovědět 23.9.2012 15:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

BTW fixnul jsem ty klávesy, jes! Mám to fakt hotový :D

Ještě jsem se chtěl s tebou poradit, cpeš logiku do těch komponent nebo do samostatných tříd? Mám teď v komponentě Skore kde se řeší různé errory a zobrazení výsledků i logiku toho stahování, asi to spíše oddělím. Řešil jsi tohle?

Nahoru Odpovědět 23.9.2012 15:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

Jak kdy, ale vetsinou to cpu do tech komponent. Do novych trid to davam jen v pripade ze to souvisi s vice prvky hry napr. vypocet kolizi, vykresleni "geometrickeho" tvaru, nebo nejake efekty atp... V pripade toho stahovani bych to dal asi taky do nove tridy...

Editováno 23.9.2012 16:49
 
Nahoru Odpovědět 23.9.2012 16:47
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 15 zpráv z 15.