IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:11.9.2012 15:01

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
New kid back on the block with a R.I.P
Avatar
user
Tvůrce
Avatar
user:11.9.2012 15:09

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
Tvůrce
Avatar
albertpatera:11.9.2012 15:23

taky by ě docela zajímalo

 
Nahoru Odpovědět
11.9.2012 15:23
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:11.9.2012 16:00

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.

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

Nahoru Odpovědět
11.9.2012 16:00
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:21.9.2012 14:11

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
21.9.2012 14:11
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:22.9.2012 22:16

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
New kid back on the block with a R.I.P
Avatar
user
Tvůrce
Avatar
Odpovídá na David Hartinger
user:22.9.2012 22:51

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 Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:23.9.2012 10:42

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
New kid back on the block with a R.I.P
Avatar
user
Tvůrce
Avatar
Odpovídá na David Hartinger
user:23.9.2012 11:47

:) 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 Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:23.9.2012 14:09

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
New kid back on the block with a R.I.P
Avatar
user
Tvůrce
Avatar
Odpovídá na David Hartinger
user:23.9.2012 14:38

S timto problemem jsem se jeste nesetkal...

 
Nahoru Odpovědět
23.9.2012 14:38
Avatar
user
Tvůrce
Avatar
Odpovídá na David Hartinger
user:23.9.2012 14:48

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 Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:23.9.2012 15:04

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
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na user
David Hartinger:23.9.2012 15:32

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
New kid back on the block with a R.I.P
Avatar
user
Tvůrce
Avatar
Odpovídá na David Hartinger
user:23.9.2012 16:47

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.