Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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
Honza Bittner
Tvůrce
Avatar
Honza Bittner:6.3.2013 19:38

Zdravím, dodělávám takovou malou hru a lámu si hlavu nad odpočtem ...
Nějak mi to nejde nastavit ..

Mohl by mi někdo pomoc jak udělat odpočet jedné minuty ? :)

Děkuji :)

Odpovědět
6.3.2013 19:38
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Honza Bittner
David Hartinger:6.3.2013 19:40

Najdi si třídu Timer ;-)

Nahoru Odpovědět
6.3.2013 19:40
New kid back on the block with a R.I.P
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na David Hartinger
Honza Bittner:6.3.2013 19:42

né, to jsem nemyslel ... mám už timer a odpočítává to, ale potřebuju nějaké viditelné zpracování, které byde psát 59,58,57,56....

Nahoru Odpovědět
6.3.2013 19:42
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Honza Bittner
Michael Olšavský:6.3.2013 19:49

Co třeba psát do labelu? Každý tick odečteš od nastavené proměnné (short s = "odpocet") 1 a změníš text v labelu na aktuální hodnotu promněnné.

 
Nahoru Odpovědět
6.3.2013 19:49
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Honza Bittner:6.3.2013 19:57

no a jak zjistim kolik zbývá nebo kolik už uběhlo z času ? :)

Nahoru Odpovědět
6.3.2013 19:57
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Honza Bittner
TomBen:6.3.2013 20:06

Koukneš na hodinky. :D :D

Nahoru Odpovědět
6.3.2013 20:06
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Honza Bittner
Petr Nymsa:6.3.2013 20:06

Tak co se týče již odběhnutého času, stačí přičítat nějakou hodnotu, odpovídající času nebo mnohem lepší řešení je použít třídu TimeSpan. Třída slouží právě pro výpočet kolik uběhlo času od nějakého zadaného. V tvém případě by jsi počítal čas uběhnutý od zapnutí hry, nebo tak nějak :)

Nahoru Odpovědět
6.3.2013 20:06
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Honza Bittner
Michael Olšavský:6.3.2013 20:08

No tou inkrementací (nebo dekrementací) dané proměnné. => Nastav si interval timeru. Nebo to můžeš udělat přes timespan.
Příklad:

DataTime d = DateTime.Now;
....
private void Tick(object sender, EventArgs e)
{
    Timespan t = d - DateTime.Now;
    label1.Text = t.TotalSeconds;
}

Edit.: Jak vidím, tak Petr Nymsa to už napsal :-)

Editováno 6.3.2013 20:09
 
Nahoru Odpovědět
6.3.2013 20:08
Avatar
matesax
Tvůrce
Avatar
matesax:6.3.2013 20:23

Hru doufám děláš v XNA - tak počítej v Update a v Draw kresli text - ne?

Editováno 6.3.2013 20:24
 
Nahoru Odpovědět
6.3.2013 20:23
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na matesax
Honza Bittner:6.3.2013 20:27

Jelikož s C# začínám tak to dělám ve formulářové aplikaci .. :D

Nahoru Odpovědět
6.3.2013 20:27
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Honza Bittner:6.3.2013 20:27

Hele není tady něco jako v Pascalu Delay ? :)

Možná bych ten odpočet mohl udělat přes for ..

Nahoru Odpovědět
6.3.2013 20:27
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Honza Bittner
Petr Nymsa:6.3.2013 20:35

A proč nevyužiješ ten TimeSpan, na tohle je přímo dělaný :) Koukni na kod Michael Olšavský ten to napsal stručně ale jasně

Nahoru Odpovědět
6.3.2013 20:35
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Honza Bittner
David Hartinger:6.3.2013 20:50

Si udělej proměnnou int sekundy = 60, timeru nastav interval na 1000 a v tick přičti 1 ;-)

Nahoru Odpovědět
6.3.2013 20:50
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:6.3.2013 20:54

Přičítat - nebude leší sejmout čas a jen od aktuálního odečíst?

 
Nahoru Odpovědět
6.3.2013 20:54
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:6.3.2013 20:56

To je snad jedno, může si klidně počítat sekundy, pak zase nemusí nic převádět.

Nahoru Odpovědět
6.3.2013 20:56
New kid back on the block with a R.I.P
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na David Hartinger
Honza Bittner:6.3.2013 21:07

No použil jsem tvou radu :)
Teď to funguje přesně jak sem chtěl :)

Díky moc všem .. :)

Nahoru Odpovědět
6.3.2013 21:07
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Mediel
Tvůrce
Avatar
Mediel:7.3.2013 8:52

Timer se ale po nejake dobe zacne dosti rozchazet, Tedy, ze sec nerva doopravdy sec a pod... :) Zkuste si napogramovat treba hodiny pomoci timeru...

Doporucoval bych doopravdy pouzivat ten TimeSpan :) Od toho ty funkce v C# jsou :)

A pokud je potreba vykreslovat cas v realnem case, tak to delam takto:

Do metody timeru vlozim nasledujici:

private void timer1_Tick(object sender, EventArgs e)
        {
            lCasuZbyva.Text = VypisCas(CasKdyMaNecoSkoncit - DateTime.Now);
        }

kde timer ma nastaveny interval: 1 aby se to obnovovalo co nejcasteji.

a metoda pro vypsani casu vypada treba takhle:

private string VypisCas(TimeSpan cas)
        {
            StringBuilder sb = new StringBuilder();
            if (cas.Days > 0)
                sb.Append(cas.Days + " d ");
            if (cas.Hours > 0)
                sb.Append(cas.Hours + " h ");
            if (cas.Minutes > 0)
                sb.Append(cas.Minutes + " m ");
            if (cas.Seconds > 0)
                sb.Append(cas.Seconds + " s ");
            if (cas.Milliseconds > 0)
                sb.Append(cas.Milliseconds + " ms");

            return sb.ToString();
        }
:)
Editováno 7.3.2013 8:52
Nahoru Odpovědět
7.3.2013 8:52
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Mediel
Honza Bittner:7.3.2013 9:25

no tak můj případ je měření minuty .. a u mého případu mi je jedno jestli je to minuta a sekunda ... ;)

ale pro větší projekty jistě použiji tvou radu :)
Díky moc :)

Nahoru Odpovědět
7.3.2013 9:25
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
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 18 zpráv z 18.