Ahoj, mam hru kde se pohybuji pomocí šipek a chci tam přidat "nápovědu", když stisknu klávesu [H], tak chci aby se mi opakovala metoda Vyres a každý krok byl zpožděný o 20ms. Mám to řešeno takhle:
public static bool pomoc = false; //zjistuje, jestli chci pomoc
public static bool ZpracujPohyb(Keys tlacitko)
{
// promenna vyuzita pro ulozeni vysledku pohybu (zda jsme v cili ci ne)
bool vysledek = false;
// na zaklade stisknuteho tlacitka proved danou operaci
if (!pomoc)
{
switch (tlacitko)
{
case Keys.Up:
vysledek = Bludiste.JdiNahoru();
break;
case Keys.Down:
vysledek = Bludiste.JdiDolu();
break;
case Keys.Left:
vysledek = Bludiste.JdiVlevo();
break;
case Keys.Right:
vysledek = Bludiste.JdiVpravo();
break;
case Keys.H:
vysledek = false;
pomoc = true;
break;
}
// na zaver vratime vysledek pohybu
} else {
SendKeys.Send("k"); //simulace klavesy
vysledek = Bludiste.Vyres();
Thread.Sleep(20);
}
return vysledek;
}
myšleno je to tak, že dokud mačkám šipky, tak se pohybuji podle jejich směru, když zmáčku H, tak se mi spustí režim nápovědy a bude se mi každý krok metody Vyres zobrazovat. Takhle jak to mám, tak ta nápověda jede, ale zobrazí se mi až výsledek. Když zmáčknu šipku, zobrazí se mi normálně pohyb. Metoda Vyres je řešena pomocí metod JdiVlevo, JdiVpravo...
Když smažu tu simulaci klávesy SendKeys.Send("k"); tak mi to po stisku jakýkoli klávesy jede jak chci, myslel jsem, že tou simulací to prostě nebude čekat až něco zmáčknu a zmáčkne se to samo
Prosím o nějaký nápad, kdyby to chtěl někdo zkoumat ví, rád pošlu celý kód, myslím, že takhle na webu je to nepřehledný. Děkuju, 8ndra.