IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martin Vejvoda:30.7.2018 22:37

Ahoj, dělám Game of Life s grafickým rozhraním a narazil jsem na jeden problém. Na vykreslování používám canvas, u kterého mám metody MouseMove, MouseLeftButtonUp a MouseLeftButton­Down. Pomocí MouseMove posunuju herní plochu, ale problém je, že na konci posunování se někdy zavolá MouseLeftButtonUp a to pouze v případě, když canvas "držím" za mrtvou buňku, ze které se tedy stane živá. Když ale "držím" canvas za živou buňku, tak se MouseLeftButtonUp nezavolá a buňka tedy stále žije (což je správně). Nevíte někdo, kdy se volá MouseLeftButtonUp a proč se mi zavolá jen v některých případech?

Odpovědět
30.7.2018 22:37
matika > informatika
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:31.7.2018 16:26

To může být tím, že se jedná o routovaný event, a živá buňka z nějakého důvodu "polyká" bubbling eventu. Zkus živé buňce nastavit metodu pro mouseleftbuttonup:

private void AliveCell_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
        e.Handled = false;
}

Pokud to nejde, napiš mi, jsem teď totiž na mobilu. Mohl jsem udělat chybku.

Editováno 31.7.2018 16:27
Nahoru Odpovědět
31.7.2018 16:26
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na krepsy3
Martin Vejvoda:1.8.2018 12:25

Zkusil jsem to zadat do canvas_MouseLef­tButtonUp() a nepomohlo to. Já tam nemám žádnou živou a mrtvou buňku, na kterou bych mohl kliknout. Prostě kliknu na canvas a ze souřadnic myši spočítám, jestli buňka žije nebo ne.
Problém jsem ale vyřešil tím, že při delším posunutí prostě zakážu změnu stavu buňky. Pamatuju si, kde jsem tlačítko stisknul a kde jsem ho uvolnil a z toho počítám vzdálenost. Nicméně stále nechápu, proč se metoda canvas_MouseLef­tButtonUp zavolá jen někdy.

Nahoru Odpovědět
1.8.2018 12:25
matika > informatika
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:1.8.2018 18:03

Možná, že kdybys poslal kód, šlo by na to přijít, takhle jsem mohl jenom hádat ;)

Nahoru Odpovědět
1.8.2018 18:03
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 4 zpráv z 4.