Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Dobrý deň, už niekoľko dní programujem môj engine. A teraz som dospel k verzií ktorá by už bola schopná na programovanie hier. A teraz by som vás prosil aby ste si môj engine pozreli a povedali čo robím zle, nieaké lepšie riešenia,...
Popis Enginu:
Hrá je zložená z map a tie budú rozdelené do 3 chapterov (častí). Mapy budem dorábať potom. Mapy sú v priečinku Maps. Každá mapa má názov ChCisloChapte­ruMapCisloMapy. Každá mapa dedí z triedy Map ktorá je v priečinku Maps.
Každá mapa sa skladá z elementov. Pridanie nového elementu je jednoduché:

elements.Add(new Sprite(false, new Rectangle(rozmery), Content.Load<Texture2D>("cesta k obrazku")))

;
Pole elements obsahuje prvky ISprite ktoré má pár metod.
Trieda Sprite aplikuje tento interface. Ešte tu mám triedu AnimatedSprite ktorá nerobí nič iné ako animované obrázky.

Pridanie mapy
Vytvoríte si novú triedu a pôjdete do priečinku Screens a do triedy Gameplay.
V metodách (sú na spodu) LoadMapsChCis­loChapteru iba inicializujete túto mapu:

mapsCh1.Add(new Ch1Map1(main, this));

.

Prepnutie inej mapy
Trieda gameplay má metodu ChangeMap ktorá toto robí.

Toto je základný popis enginu. A teraz kritizujte :) Inak Engine je napísaný v C# a používa framework MonoGame

Ešte chvíľku moment, uploadujem zdrojové kódy na Ulož.to

Editováno 25.5.2013 14:42
Odpovědět 25.5.2013 14:41
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Zdrojové kódy: http://uloz.to/…emachine-rar
Inak pridal som tam jednu mapu,...textury som nerobil ja, tak sa nesmejte :D

Editováno 25.5.2013 14:49
Nahoru Odpovědět 25.5.2013 14:46
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Nějak mi to nejde spustit.

Nahoru Odpovědět 25.5.2013 14:51
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

MonoGame máš nainštalovaný?

Nahoru Odpovědět 25.5.2013 14:57
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 25.5.2013 15: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
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 25.5.2013 15:01
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 25.5.2013 16:08
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Drakeman
Redaktor
Avatar
Odpovídá na Juraj Mlich
Drakeman:

Bohužel mám linux, takže když je to napsaný C#, tak to u mě asi nepojede :-)

Nahoru Odpovědět 25.5.2013 16:50
Když se chce, tak jde všechno,
Avatar
Odpovídá na Drakeman
Michael Olšavský:

Je to v monogame, takže by to mělo jet.

To Juraj Mlich : Máš to docela pěkné :-) Ještě se podívám na kód, ale animace se povedly.

Editováno 25.5.2013 16:55
 
Nahoru Odpovědět 25.5.2013 16:53
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Stáhl jsem si MonoGame a stále se mi to nedaří spustit :(

Nahoru Odpovědět 25.5.2013 17:21
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
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 25.5.2013 17:34
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Už to jde, je to super! :D :D :D Fakt pěkný, grafiku jsi dělal sám?

Nahoru Odpovědět 25.5.2013 17:47
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
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

neumíš číst? :D psal to tam :D
jurajmlich -> ta grafika je luxusní právě :D

Nahoru Odpovědět 25.5.2013 17:51
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

Aha, ten 2. koment jsem nečetl.

Nahoru Odpovědět 25.5.2013 17:53
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

To je až také dobré? A kódy si pozeral?

Nahoru Odpovědět 25.5.2013 18:38
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Kód ještě ne, ale kouknu na něj.

Nahoru Odpovědět 25.5.2013 18:41
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

A tá grafika sa vám fakt páči?

Nahoru Odpovědět 25.5.2013 18:42
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Grafika je mega, upekl bych ti dort, kdybych to uměl :D

Nahoru Odpovědět 25.5.2013 18:43
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

To si nás potešil (mňa a môjho kolegu ktorý to nakreslil) :)

Nahoru Odpovědět 25.5.2013 18:44
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Keď si kód pozriete tak dajte vedieť, potom keď bude hra hotová tak dám link na stiahnutie :)

Nahoru Odpovědět 25.5.2013 18:46
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Pozeral si niekto tie zdrojové kódy?

Nahoru Odpovědět 26.5.2013 13:05
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 26.5.2013 19:59
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Tak jsem se k tomu konečně dostal.

Mapy
Takhle dlouhou hru nikdy neuděláš, když budeš každý objekt psát ručně do kódu. Mám na mysli:

elements.Add(new Oblak(true, new Rectangle(20, 50, 447, 220), Content.Load<Texture2D>("graphics/chapter1/map1/Oblak01"), 0));

Engine je zvládnutý opravdu dobře, jen bych udělal ještě jeden program - editor. Ten by byl jen ve Windows Forms bez XNA a umožňoval by tio myší naklikat různé objekty na plochu místnosti a dále místnost uložit (třeba do XML). Načíst pak mapu z XML je poměrně jednoduché. Ušetří ti to hodiny práce a možná pak uděláš opravdu hru, takhle se vyčerpáš na 10ti místnostech, protože psát ručně to trvá strašně dlouho, každý kámen, souřadnice atd.

Inputs
V pohodě.

elements
V pohodě, jen bych je nedělil podle chapterů, stejně budeš mít třeba v 2. chapteru mrak z chapteru prvního. Nemá to smysl rozdělovat, dej je všechny do jedné složky, bude tak jednodušší i tvorba editoru levelů.

Screens
mapsch1, mapsch2, mapsch3... Proč načítat všechny mapy? Nechal bych tam jednu mapu a tu vždy načetl když ji hraji.

FileWorking.cs je prasárna, použij XML. Soubor settings.txt by měl vypadat takto:

<settings>
<width>1280</width>
<height>720</height>
<nevimcotojealekdybystomelvxmltakbychtopoznal>100</...>

Pro práci s XML soubory použij třídu XDocument.

Proměnnou scale v Main vlož do třídy Scalling, již jsem ti to psal. Tam přeci patří, proč máš logiku škálování na více místech?

Mám z toho projektu docela dobrý pocit, až na pár drobností to vypadá opravdu skvěle. Bez toho editoru levelů to ale nepůjde.

Čeká mi tu tvůj článek, když jsem ho četl, bylo nam pořád napsané Global.cs, i když zdroják jsi už opravil, oprav to prosím i v článku a dej scale do Scalling, abych ho mohl publikovat :)

EDIT: Koukám, že to global jsi už opravil, ještě prosím o přesun scale do Scalling.

Editováno 27.5.2013 13:23
Nahoru Odpovědět 27.5.2013 13:20
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

S tým editorom som tiež myslel že to tak spravím :) ale neviem moc robiť vo Windows Forms ale pomaly sa to učím, článok idem hneď prepísať :)

Nahoru Odpovědět 27.5.2013 14:30
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

A v tom XML "nevimcotojea­lekdybystomel­vxmltakbychto­poznal" to mala byť hlasitosť zvuku. A inak ďakujem za takéto zhodnotenie, moc mi to pomohlo :)

Nahoru Odpovědět 27.5.2013 14:38
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

Na XML XDocument? Mne ju v tom MonoGame nechce nájsť, aj keď som pridal using-y, ani len System.Xml.Linq nenašlo :)

Nahoru Odpovědět 27.5.2013 14:48
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Pokud máš .NET alespoň 3.5 (což bys měl mít), tak je v System.Xml.Linq. Když najedeš na tu třídu co to nezná, ukáže se ti modré podtržítko a nabídne import. Článek je už teda ready?

Nahoru Odpovědět 27.5.2013 14:54
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

článok áno, ale aj tak to tam nemám, však si to skús :)

Nahoru Odpovědět 27.5.2013 15:13
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

No já XDocument používám :D

Nahoru Odpovědět 27.5.2013 15:19
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 Juraj Mlich
David Čápka:

Vždyť to tam pořád není :D Proměnná scale je v Main, má být ve Scalling.

Nahoru Odpovědět 27.5.2013 15:28
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
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

Já osobně jsem měl v MonoGame také pár problémů s určitými třídami. Možná to je stejný případ :). Použil jsem něco jiného, ale bohužel u si nepamatuju co mi nešlo a co jsem použil jiného :D

Nahoru Odpovědět 27.5.2013 15:36
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

Jsme to našel, prý to nejde načíst protože ta hra bere soubory z toho svého resource takže se to dělá takhle:

using (StreamReader sr = new StreamReader(Game.Activity.Assets.Open("Content/myXML.xml"))
{
  XDocument doc = XDocument.Load(sr);
}
Nahoru Odpovědět 27.5.2013 15:38
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

Zabudol som uploadnuť aj nové zdrojové kódy, už to tam máš :)

Nahoru Odpovědět 27.5.2013 16:03
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 27.5.2013 16: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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:
using (StreamReader sr = new StreamReader(Game.Activity.Assets.Open("Content/myXML.xml"))

Píše mi že Activity neexistuje :)

Nahoru Odpovědět 27.5.2013 16:05
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Juraj Mlich
Juraj Mlich:

Nakoniec sa to robí takto:

Stream stream = TitleContainer.OpenStream("Content\\Rooms.xml");
XDocument doc = XDocument.Load(stream);
Editováno 27.5.2013 16:12
Nahoru Odpovědět 27.5.2013 16:12
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Juraj Mlich
Juraj Mlich:

Nerobí :( aj tak to nefunguje :(

Nahoru Odpovědět 27.5.2013 16:16
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 27.5.2013 16:20
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Juraj Mlich
David Čápka:

No tak mu tu referenci přidej, když si o ni říká.

Nahoru Odpovědět 27.5.2013 18:51
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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

Toto som nevedel že sa niečo také dá, funguje diki :)

Nahoru Odpovědět 28.5.2013 18:52
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
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 40 zpráv z 40.