Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 6.3.2013 19:40
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
Honza Bittner
Redaktor
Avatar
Odpovídá na David Čápka
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Odpovídá na Honza Bittner
Michael Olšavský:

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
Redaktor
Avatar
Odpovídá na Michael Olšavský
Honza Bittner:

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

Nahoru Odpovědět 6.3.2013 19:57
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
TomBen
Redaktor
Avatar
Nahoru Odpovědět  +1 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
Redaktor
Avatar
Odpovídá na Honza Bittner
Petr Nymsa:

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ý:

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
Redaktor
Avatar
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michael Olšavský
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Honza Bittner
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:

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
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
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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

 
Nahoru Odpovědět  +1 6.3.2013 20:54
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
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
Honza Bittner
Redaktor
Avatar
Odpovídá na David Čápka
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Mediel
Redaktor
Avatar
Mediel:

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
Redaktor
Avatar
Odpovídá na Mediel
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
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.