Java týden Předvánoční slevová akce
Využij předvánočních slev a získej od nás 20 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Odrážení kuličky v C# .NET WPF

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Jednoduchá WPF aplikace v C# .NET. Je to hra pro dva hráče. Úkolem je odrážet kuličku a nasbírat co největší skóre.

Ovládání

  • Hráč 1 - W,S
  • Hráč 2 - šipkami nahoru a dolů

V kódu jsem popsal každý krok, proto doufám, že to bude alespoň trochu srozumitelné. Hra je včetně zdrojových kódů.


Galerie

Hra byla vytvořena v roce 2015.

 

Stáhnout

Staženo 339x (387.56 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Aktivity (1)

 

 

Komentáře

Avatar
bem.jiri12
Člen
Avatar
bem.jiri12:14.1.2015 12:00

mockrát děkuji za kód. Právě vytvářím svoji 3 hru a první s možností stisknutí kláves. A právě s keypress/down/up eventy mám nyní problém. Takže doufám že tato aplikace pro mě bude zajímavá. :)

 
Odpovědět
14.1.2015 12:00
Avatar
Hojdar Vít
Člen
Avatar
Hojdar Vít:14.1.2015 17:04

Někdy již po prvním nechycení kuličky se mi obě odrážedla zaseknou a už s nimi nejde hrát. Párkrát jsem to vypnul/zapnul, ale i tak do deseti her se sekly znovu ;-(

 
Odpovědět
14.1.2015 17:04
Avatar
beibovaneki
Redaktor
Avatar
Odpovídá na Hojdar Vít
beibovaneki:14.1.2015 18:12

Nejde s nima hrát vůbec, i když tam ta kulička lítá?

 
Odpovědět
14.1.2015 18:12
Avatar
Hojdar Vít
Člen
Avatar
Hojdar Vít:14.1.2015 18:29

Ano, přesně tak. Kulička lítá normálně. Dokud se kulička nedostane za odrážedlo, tak je vše v pohodě. Pak jak kdy, někdy po pěti špatných, někdy po 10 špatných (nechycených), jednou jsem se dostal i ke 30 špatných. Někdy se zasekne jen jedna (většinou modrá), někdy rovnou obě... Nějakou souvislost, proč se to tak děje jsem nezjistil. (jo a Win8.1 64b, pokud to pomůže).

 
Odpovědět
14.1.2015 18:29
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
beibovaneki
Redaktor
Avatar
Odpovídá na Hojdar Vít
beibovaneki:14.1.2015 18:44

Abych řekl pravdu, nemám ponětí proč to tak je. Mě se ještě nikdy nic takového nestalo a taky mám Win8.1 64b, navíc jsem to zkoušel i na jiném počítači (ten nebyl zrovna nový a měl starší typ Win) a tam to také fungovalo bez problémů.

Kdyby někdo měl stejný problém nebo řešení, tak prosím napište.

 
Odpovědět
14.1.2015 18:44
Avatar
Vít Škrhák:25.12.2015 13:40

Zdravím, také jsem měl problém s tím, že se mi odrážedlo po pár tazích zaseklo. Problém by měl jít vyřešit touto úpravou:

private void window_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.W)
            {
                t.Tick -= Hrac1Nahoru;
                p1 = 0;                                 //původně p1--
            }
            if (e.Key == Key.S)
            {
                t.Tick -= Hrac1Dolu;
                p1 = 0;                                 //původně p1--
            }
            if (e.Key == Key.Up)
            {
                t.Tick -= Hrac2Nahoru;
                p2 = 0;                                 //původně p2--
            }
            if (e.Key == Key.Down)
            {
                t.Tick -= Hrac2Dolu;
                p2 = 0;                                 //původně p2--
            }
        }

Avšak budu raději, pokud to někdo více programátorsky osvícený, než jsem já, zkontroluje. Programování se věnuju sotva 2 měsíce, tak se případně omlouvám, jestli jsem se dopustil nějakého prohřešku proti programátorskému desateru.

 
Odpovědět
25.12.2015 13:40
Avatar
krepsy3
Redaktor
Avatar
krepsy3:3.7.2017 22:05

Ahoj, chápu, že tato diskuze se tu vedla před dvěma roky, ale stejně přispěju svou trochou. Tak zaprvé, Vít Škrhák má pravdu. Hodnota p1 a p2 prostě přeleze přes 1 nebo podleze pod nulu. Jeho úprava je tedy funkční řešení. Nicméně obě proměnné by šly jednoduše odstranit, a přidat jednu podmínku. KeyEventArgs totiž obsahují vlastnost bool IsRepeat, která sděluje, jestli klávesa, která konkrétní event vyvolala, není držena, a tedy vyvolává event dokola. Při prvním zavolání po stisku klávesy je tedy IsRepeat false, a od té chvíle je true až do doby, kdy uživatel klávesu pustí :)

Odpovědět
3.7.2017 22:05
Programátor je stroj k převodu kávy na kód.
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 7 zpráv z 7.