C# - jak spustit určitou část kódu každou 1 minutu Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
lukas.sei
Level 4
Level 4
Příspěvky: 1074
Registrován: leden 13
Pohlaví: Muž
Stav:
Offline

C# - jak spustit určitou část kódu každou 1 minutu

Příspěvekod lukas.sei » 29 úno 2016 15:32

Čaute,
Dělám konzolovou aplikaci ve Visual Studio a potřebuji poradit.
Potřebuji každou 1 minutu spustit tento kód

Kód: Vybrat vše

hrac1.UberHP(5);

Jak tohohle mám docílit ? (Programuji v C# a v programu: Visual Studio Basic 2015)

Reklama
Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# - jak spustit určitou část kódu každou 1 minutu

Příspěvekod satik » 29 úno 2016 16:05

Ahoj,
jak vypadá běh té konzolové aplikace?

Pokud bys volal cyklicky nějaký kód - třeba měl nějakou herní smyčku, tak můžeš v každém cyklu zjistit, jestli už uběhla minuta a pak ten kód spustit. Pokud bys tam ale třeba četl vstup od uživatele přes nějakou čekací funkci, tak by to vždycky nemuselo být po minutě, ale až po tom, co uživatel ten vstup zadá. To by stačilo?

Jinak pak jedině přes další vlákno, v kterém bude cyklus, který bude provádět v každém kroku tvůj kód a pak zavolá Thread.Sleep(60000).
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
Michal.
Level 3.5
Level 3.5
Příspěvky: 856
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

Re: C# - jak spustit určitou část kódu každou 1 minutu

Příspěvekod Michal. » 29 úno 2016 16:16

Knihovny System.Timers, System.Threading

Kód: Vybrat vše

public static void Main()
{
    System.Timers.Timer myTimer = new System.Timers.Timer();
    myTimer.Elapsed += new ElapsedEventHandler(OnTimer);
    myTimer.Interval = 1000 * 60 * 1; //1 minuta
    myTimer.Enabled = true;

    Console.ReadKey();
}

public static void OnTimer(Object source, ElapsedEventArgs e)
{
    hrac1.UberHP(5);
}

Uživatelský avatar
lukas.sei
Level 4
Level 4
Příspěvky: 1074
Registrován: leden 13
Pohlaví: Muž
Stav:
Offline

Re: C# - jak spustit určitou část kódu každou 1 minutu

Příspěvekod lukas.sei » 29 úno 2016 16:20

Ten kód vypadá nějak takhle:

Kód: Vybrat vše

while (pokracovat == 1)
{
// nějaký kód (povětšinou generace nepřátel a boj)
while(nemocnice == 1) //tady je to kde příjde odpočet
{
Console.WriteLine("Vstoupil jsi do nemocnice.");
                    Console.WriteLine("Zde se ti každou minutou vyléčí 5 životů.");
                    do
                    {
                        while (!Console.KeyAvailable) //tohle se musí opakovat každou minutu
                        {
                            Console.WriteLine("Právě si získal 5 životů. Pro získání dalších 5 životů čekej další minutu. Pro odchod z nemocnice zmáčkni Escape.");
                            hrac1.PridejHP(5);
                        }
                    } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
                    {
                        nemocnice = 0;
                        Console.WriteLine("Odešel jsi z nemocnice.");
                    }
}
}

Doufám, že si to pochopil :). A taky doufám že jsem to přepsal správně :D.

A ještě mám jednu otázku. Když napíšu switch a v jedné case si uložím do proměnné hodnotu, po ukončení switche ta hodnota v té proměnné už není. Dá se nějak udělat, aby tam ta hodnota zůstala ?

Kód: Vybrat vše

int promenna;
int pravda = 1;
switch (pravda)
{
case 1:
promenna = 25; //tu do te promenné nahraju číslo 25
break
}
Console.WriteLine("promenna"); //tu však ale už zase v sobě nemá uložené vůbec nic :/

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# - jak spustit určitou část kódu každou 1 minutu  Vyřešeno

Příspěvekod CZechBoY » 01 bře 2016 22:49

Tak to si ji nekde prepises, tak jak si ten switch napsal je to ok.

Dej si timer na minutu a pak pridej 5HP pokud tam furt bude. Kontrolu ale delej pri kazdym pohybu, aby se ti nestalo ze hrac prijde, na 59s odejde a pak zas prijde a bude to mit zapocitano jakoze tam byl celou dobu...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Prosím o úpravu kódu. Děkuji *
    od junis » 09 črc 2024 18:05 » v Kancelářské balíky
    4
    4400
    od junis Zobrazit poslední příspěvek
    22 črc 2024 17:54
  • Fortnite nejde spustit
    od makojed » 27 lis 2024 17:12 » v Hry
    7
    4691
    od makojed Zobrazit poslední příspěvek
    21 led 2025 18:23
  • Firewall WIndows Defender nejde spustit
    od Richard_ZZR » 02 pro 2024 16:26 » v Windows 11, 10, 8...
    1
    1681
    od Tint Zobrazit poslední příspěvek
    02 pro 2024 19:41
  • MS Office nelze spustit - Exception code: 0xc0000005
    od krysarr » 18 dub 2025 15:52 » v Windows 11, 10, 8...
    3
    3492
    od pcmaker Zobrazit poslední příspěvek
    20 dub 2025 20:38
  • Služba DPS (Diagnostic Policy Service) nejde spustit
    od Richard_ZZR » 02 pro 2024 16:33 » v Windows 11, 10, 8...
    0
    1992
    od Richard_ZZR Zobrazit poslední příspěvek
    02 pro 2024 16:33

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů