C# - jak spustit určitou část kódu, když je zmáčknuto tlačítko ale nečekat na něho

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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod lukas.sei » 05 bře 2016 11:19

Čaute,
Ve C# dělám konzolovou aplikaci a potřebuji, aby pokaždé když kliknu na určité tlačítko se spustila část kódu.
kód vypadá asi takto:

Kód: Vybrat vše

while (b1.Nazivu() && b2.Nazivu())
                    {
                       
                            b1.Utoc(b2);
                            Vykresli();
                            VypisZpravu(b1.VratPosledniZpravu()); // zpráva o útoku
                            VypisZpravu(b2.VratPosledniZpravu()); // zpráva o obraně                 
                            if (b2.Nazivu())
                            {
                                b2.Utoc(b1);
                                Vykresli();
                                VypisZpravu(b2.VratPosledniZpravu()); // zpráva o útoku
                                VypisZpravu(b1.VratPosledniZpravu()); // zpráva o obraně
                            }
                            Console.WriteLine();
                       
                    }

A já potřebuji, aby když zmáčknu tlačítko F1 se spustil tento kód:

Kód: Vybrat vše

bojovnik1.PridejHP(10);

Dalo by se přirovnat, jako používání lektvarů v boji.

zkoušel jsem to takhle:

Kód: Vybrat vše

do
{
while (b1.Nazivu() && b2.Nazivu() && !Console.KeyAvailable) //boj
                    {
                       
                            b1.Utoc(b2);
                            Vykresli();
                            VypisZpravu(b1.VratPosledniZpravu()); // zpráva o útoku
                            VypisZpravu(b2.VratPosledniZpravu()); // zpráva o obraně                 
                            if (b2.Nazivu())
                            {
                                b2.Utoc(b1);
                                Vykresli();
                                VypisZpravu(b2.VratPosledniZpravu()); // zpráva o útoku
                                VypisZpravu(b1.VratPosledniZpravu()); // zpráva o obraně
                            }
                            Console.WriteLine();
                       
                    }
              }
              while (Console.ReadKey(true).Key != ConsoleKey.F1); //čekání na tlačítko, pro použití lektvaru
              {
                      bojovnik1.PidejHP(10);
              }
           

Takhle to sice fungovalo, ale po stisknutí tlačítka už se neobnovil boj. A celý kód se vypnul, aniž by někdo z nich zemřel.

Může mi prosím někdo pomoct ?

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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod satik » 05 bře 2016 14:14

Děláš to celý nějak divně :) .

Měl bys mít hlavní smyčku, ve který pokaždý postupně uděláš:
- zpracuješ vstup uživatele, pokud nějakej je
- spustíš update hry (výpočet veškerý logiky)
- vykreslíš

Máš to jako konzolovku nebo formulářovou aplikaci? Někde píšeš konzolovou, ale zároveň někde píšeš "tlačítko", což je formulářovej prvek.
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
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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod lukas.sei » 05 bře 2016 15:15

Je to konzolovka. Tlačítko myslím na klávesnici.

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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod satik » 05 bře 2016 16:24

Ok.
Pak herni smycka viz vyse. Nemel bys michat moc vykresleni do logiky, na coz to tady vypada :)
V zpracovani vstupu bys mel reakci na uzivatele a v updatu hry to pak zpracovavat, zpracovavat logiku nepratele a provadet takovy ty vsechny veci jako treba to pridavani/ubyvani zovotu.

Pokud chces delat neco jako tu nemocnici, co kazdych x sekund prida y zivota, pak bys mel si udelat treba tridu Nemocnice, jejiz update by jsi volal pokazdy, ale uvnitr by byla kontrola, jaka doba ubehla od minuleho pridani zivota a provest to az pak.
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
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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod lukas.sei » 06 bře 2016 08:52

Mohl bys mi prosím poslat nějakou ukázku kódu, jak bys to vyřešil ty ?

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: C# - jak spustit určitou část kódu, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod faraon » 06 bře 2016 09:18

https://msdn.microsoft.com/cs-cz/librar ... 10%29.aspx ?

Mimochodem, už před víc než čtyřiceti lety měl BASIC příkaz ON, který reagoval na zadanou událost přerušením běhu programu a vyvoláním podprogramu... Dřív než vznikl Micro$oft :lol:
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod satik » 06 bře 2016 11:11

Tady máš takovou rozdělanou ukázkovou hru, je to splácaný za hodinu.

F1 lezeš do nemocnice, která tě uzdravuje (za peníze), F2 vylezeš ven, F3 upgraduje nemocnici, aby léčila víc (za stejný peníze, takže tě to vyjde levnějc)
šipkama se pohybuješ (ale nemá to zatím žádný vliv)
A útok na bandity, seberou ti 0-10 života a dostaneš 0-5 peněz
ESC vypne hru
Přílohy
ConsoleGame.zip
(48.55 KiB) Staženo 27 x
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
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, když je zmáčknuto tlačítko ale nečekat na něho

Příspěvekod lukas.sei » 06 bře 2016 12:20

Děkuji oběma,
Jak příjdu domů, tak se n to podívám.


  • 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
    4401
    od junis Zobrazit poslední příspěvek
    22 črc 2024 17:54
  • Překousané kabely reset sw, tlačítko start na case
    od Speedhack » 22 kvě 2025 00:04 » v Problémy s hardwarem
    12
    4404
    od atari Zobrazit poslední příspěvek
    29 kvě 2025 09:07
  • Fortnite nejde spustit
    od makojed » 27 lis 2024 17:12 » v Hry
    7
    4693
    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
    1682
    od Tint Zobrazit poslední příspěvek
    02 pro 2024 19:41
  • Služba DPS (Diagnostic Policy Service) nejde spustit
    od Richard_ZZR » 02 pro 2024 16:33 » v Windows 11, 10, 8...
    0
    1993
    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 1 host