IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Odrážanie guľôčky v C # .NET WPF

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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á. :)

 
Odpovedať
14.1.2015 12:00
Avatar
Ježek 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 ;-(

Odpovedať
14.1.2015 17:04
Nemyslím, tedy nejsem.
Avatar
beibovaneki
Tvůrce
Avatar
Odpovedá na Ježek Vít
beibovaneki:14.1.2015 18:12

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

 
Odpovedať
14.1.2015 18:12
Avatar
Ježek 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).

Odpovedať
14.1.2015 18:29
Nemyslím, tedy nejsem.
Avatar
beibovaneki
Tvůrce
Avatar
Odpovedá na Ježek 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.

 
Odpovedať
14.1.2015 18:44
Avatar
anonym0001
Člen
Avatar
anonym0001: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.

 
Odpovedať
25.12.2015 13:40
Avatar
krepsy3
Tvůrce
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í :)

Odpovedať
3.7.2017 22:05
Programátor je stroj k převodu kávy na kód.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!