Diskuze: K dané položce listu jiná akce
Neregistrovaný
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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
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
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
No, sice by nebyl hezký switch na 80 řádků , 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
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.
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??
Tak to už je asi úplně jedno jesti budeš mít událost nebo zavoláš klasicky metodu která to aktualizuje
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
public enum CardAction
{
Spell,
Attack,
...
}
...
private Dictionary<CardAction, Action> actionsMap = new Dictionary<CardAction, Action>()
{
{ CardAction.Spell, delegate { ddd; } },
{ CardAction.Attack, delegate { ddd; } }
}
...
actionsMap[action]();
Zobrazeno 14 zpráv z 14.