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
Trubič
Neregistrovaný
Avatar
Trubič:23.3.2013 16:11

Čus, v jedné mé hře co tvořím ve WPF, jsou karty osudu(každá dělá něco jiného - přidává skilly, odebírá, přesouvá,...) mám je v listu, a pak jsou hráčovi ukázány co by měl udělat, jak mám udělat to, aby se skutečně stalo to co je na kartě?? Karty se při nové hře v listu zamíchávájí, takže karta má po každý jiný index. dík

 
Odpovědět
23.3.2013 16:11
Avatar
Neaktivní uživatel:23.3.2013 16:31

Napadá mě každé kartě dát delegáta který by ukazoval na metodu, kterou by sis pro každou kartu napsal, jinak nevím :)

Nahoru Odpovědět
23.3.2013 16:31
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:23.3.2013 16:37

Buď udělat to co říká Neaktivní uživatel . Anebo si udělat například enum, každé kartě dát patřičné enum a při výběru karty by jsi to patřičné enum poslal do nějaké metody, která by poznala typ a udělala akci, kterou má vykonat :)

Nahoru Odpovědět
23.3.2013 16:37
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na
Neaktivní uživatel:23.3.2013 16:40

S tím delegátem by to bylo možná přehlednější a hezčí, Petr Nymsaův nápad rychlejší na napsání a jednodušší. Myslím si že teď už není problém :)

Editováno 23.3.2013 16:40
Nahoru Odpovědět
23.3.2013 16:40
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr Nymsa:23.3.2013 16:41

No, sice by nebyl hezký switch na 80 řádků :D, ale zase nepřijdem i hezčí udělat X metod pro každou kartu zvlášť :) Nevím... záleží na tom, jak ty karty jsou moc rozdílný. Doufám že nemá karty pouze typu přidej 50 života a přidej 100 života :)

Nahoru Odpovědět
23.3.2013 16:41
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Trubič
Neregistrovaný
Avatar
Trubič:23.3.2013 16:47

většinou se jedná o akce přidání, nebo odebrání skillu, přesun... - karty jsou si podobné, ale jsou různé v parametrech, docela bych to zkusil přes událost- poradíte? :)

 
Nahoru Odpovědět
23.3.2013 16:47
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:23.3.2013 16:55

Rozepiš možná trochu víc ten systém karet. Pokud to máš karty ve stylu

Přidej fireball
Přidej laser
Přidej blast shield
Odeber fireball
Odeber laser
.....

Tak bych šel asi do těch enum. Udělal bych si třídu Karta, kde by jsi měl

string názevKarty;
enum typKarty

// a další doplňující info

Podle enum bych potom přiřadil správný typ útoku, obrany, přidal život apod :). Přes událost ? Teď nevím, jak chceš použít na typy karet událost.

Nahoru Odpovědět
23.3.2013 16:55
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Trubič
Neregistrovaný
Avatar
Odpovídá na Petr Nymsa
Trubič:23.3.2013 17:06

jj, ty karty jsou typu, jak si říkal, dám to přes ten enum, ale událost bych mohl využít, že když se změní počet skilů, tak aby se vlastnost Skilly správně nastavila ne??

 
Nahoru Odpovědět
23.3.2013 17:06
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:23.3.2013 17:07

To by se událost hodila :)

Nahoru Odpovědět
23.3.2013 17:07
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na
Neaktivní uživatel:23.3.2013 17:07

Tak to už je asi úplně jedno jesti budeš mít událost nebo zavoláš klasicky metodu která to aktualizuje ;)

Nahoru Odpovědět
23.3.2013 17:07
Neaktivní uživatelský účet
Avatar
Trubič
Neregistrovaný
Avatar
Odpovídá na Petr Nymsa
Trubič:23.3.2013 17:13

no zkusím tu událost, tip jak na to?? :D :)

 
Nahoru Odpovědět
23.3.2013 17:13
Avatar
matesax
Tvůrce
Avatar
matesax:23.3.2013 17:26

Já bych použil mapu. (Slovník/HashTable) Klíčem by byly položky z enumu - tím by to bylo přehledné...

 
Nahoru Odpovědět
23.3.2013 17:26
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:23.3.2013 17:26

Mrkni se sem http://www.itnetwork.cz/…ial-udalosti Ale pokud neovládáš nijak delegáty , možná bych se do toho nepouštěl :)

Nahoru Odpovědět
23.3.2013 17:26
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:23.3.2013 17:32
public enum CardAction
{
    Spell,
    Attack,
    ...
}

...

private Dictionary<CardAction, Action> actionsMap = new Dictionary<CardAction, Action>()
{
    { CardAction.Spell, delegate { ddd; } },
    { CardAction.Attack, delegate { ddd; } }
}

...

actionsMap[action]();
Editováno 23.3.2013 17:33
 
Nahoru Odpovědět
23.3.2013 17:32
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 14 zpráv z 14.