

Herní čas v C#
Zdravím, potřeboval bych prosím poradit.
Dělám v C# jednoduchou hru s využitím WPF a potřeboval bych nějak naimplementovat herní čas - tj. 1s ve skutečnosti by odpovídala 1min ve hře. Napadl mě Timespan, ale bohužel nevím jak na to.
Prosím o radu a případný vzor kódu v C#
Děkuji.
Nechapem co chces "implementovat".
TimeSpan je len konverzia 4 cisel na string. Vysvetlenie je v prirucke ee372286
Mozes pouzit aj obycajny String.Format alebo akekolvek ine formatovacie funkcie txafckwd
Resp sorry TimeSpan vie aj Add a Subtract, https://msdn.microsoft.com/en-us/library/system.ti mespan som ten skvely MS objekt podcenil, vie to aj zratat 2 cisla dokopy
Proste si do toho vies ulozit nejaku dobu, v dnoch hodinach a minutach a sekundach. To je cele. Stejne si tu dobu mozes drzat ako jedno int cislo, v minutach, sekundach, alebo v com chces, to je tvoja volba. Netreba na tom nic implementovat.
Ok, implementovat není to správné slovo. Tady to mají vysvětlené: http://stackoverflow.com/questions/36957339/accele rated-game-time-with-timespan-in-c-sharp. Nevím si stím ale vůbec rady - do jaké proměnné mám ten výsledný herní čas ukládat - DateTime?
Prosil bych o zápis v kódu v C# - opravdu si nevím rady.
Děkuji.
DateTime - datum a čas
TimeSpan - časový úsek
Takže záleží na tobě, co tam vlastně chceš mít.
Vůbec nevím, jak to zapsat - aby 1s ve skutečnosti by odpovídala 1min ve hře.
Např.:
- při startu hry si uložíš aktuální čas
- pokud budeš chtít "herní" čas, zjistíš si opět aktuální, odečteš je (získáš TimeSpan), ten vynásobíš 60
Tak jsem něco vyzkoušel, bohužel to nefunguje tak jak by mělo.
Byl by mi někdo schopen upravit tento základ tak, aby 1s ve skutečnosti by odpovídala 1min ve hře?
Děkuji moc.
Díky, ale teď mi to dělá toto:
![[cas.PNG]](http://cas.PNG)
Potřeboval bych, aby na posledním řádku bylo: 15:14:57
Děkuji.
Ten původní čas si samozřejmě musíš uložit pouze na začátku a ne ho pokaždé měnit.
Ano, měl jsou to vše ve while.
Děkuji moc za cenné rady, jste borec.
Ještě bych měl dotaz - tento herní čas by se měl zobrazovat v okně aplikace - mám pro něj TextBlock.
Potřeboval bych, aby se Text v TextBlocku neustále měnil - v závislosti na herním čase. V konzoli jsem to měl ve
loopu, ale to v tomto případě zapříčiní zamrznutí programu.
Mám to zatím takto:
Děkuji.
Nepoužívej cyklus ale DispatcherTimer.
Tak jsem už myslel, že je to funkční - v konzoli ano, ale v tom WPF stále ještě ne. Použil jsem DispatcherTimer a mám to v takovémto stádiu:
Děkuji
Stejná chyba jako před tím. Původní čas si musíš uložit jednou a ne při každém ticku.
Zdar hele vyser se na WPF :D a stáhni si unity , výtvářet hry ve WPF je o ničem :D
Máme bohužel ve škole povinnost vytvářet aplikace ve WPF.