/// <summary> /// Spracovanie kliknutia na plochu /// </summary> /// <param name="paE"></param> private void SpracujKliknutie(MouseEventArgs paE) { VykonavanaCinnost tl = VykonavanaCinnost.bezna; foreach (Tlacitko toto in aTlacitkaMenu) { if (toto.Kliknute(paE.X, paE.Y)) { Console.WriteLine(toto.ToString()); tl = toto.DajTyp(); break; } } RestartCinnosti(); aBocneMenu.HlavnaCinnost = tl; switch (tl) { case VykonavanaCinnost.pauza: OknoAplikacie.DajInstanciu().Pauza(); Sprava.Info("Hra prerušená"); RestartCinnosti(); break; case VykonavanaCinnost.start: OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra pokračuje"); RestartCinnosti(); break; case VykonavanaCinnost.vystavbaCiest: aBocneMenu.Obrazok = Resources.MenuCesty; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba ciest"; break; case VykonavanaCinnost.vystavbaZeleznic: aBocneMenu.Obrazok = Resources.MenuZeleznice; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba železníc"; break; case VykonavanaCinnost.upravaTerenu: aBocneMenu.Obrazok = Resources.MenuTerenu; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Úprava terénu"; break; case VykonavanaCinnost.vystavbaLetisk: aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba letísk"; break; case VykonavanaCinnost.vystavbaVodnychCiest: aBocneMenu.Nadpis = "Výstavba vodných\nciest"; aBocneMenu.Obrazok = Resources.MenuVodnychStavieb; aBocneMenu.HlavnaCinnost = tl; break; case VykonavanaCinnost.zoznamMiest: SpravcaOkien.ZoznamVyroby(true); RestartCinnosti(); break; case VykonavanaCinnost.zoznamVyroby: SpravcaOkien.ZoznamVyroby(false); RestartCinnosti(); break; case VykonavanaCinnost.zoznamStanic: SpravcaOkien.ZoznamStanic(); RestartCinnosti(); break; case VykonavanaCinnost.zozmanLietadiel: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vzdusne); break; case VykonavanaCinnost.uloz: if (Sprava.DajNaVyber("Prajete si uložiť aktuálnu pozíciu v hre?\nUkladanie môže chvíľku trvať.")) { try { OknoAplikacie.DajInstanciu().Pauza(); Hra.DajInstanciu().Uloz(); OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra bola úspešne uložená."); } catch (Exception) { Sprava.Info("Nie je možné uložiť hru!"); OknoAplikacie.DajInstanciu().Start(); } } break; case VykonavanaCinnost.nacitaj: if (Sprava.DajNaVyber("Prajete si načítať hru? Neuložený postup bude stratený!\nNačítanie môže chvíľku trvať.")) { try { OknoAplikacie.DajInstanciu().Pauza(); Hra.DajInstanciu().Nacitaj(); OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra bola úspešne načítaná."); } catch (Exception) { Sprava.Info("Nie je možné načítať hru!"); } } break; case VykonavanaCinnost.zoznamVlakov: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.kolajove); break; case VykonavanaCinnost.zoznamVozidiel: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.cestne); break; case VykonavanaCinnost.zoznamLodi: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vodne); break; } }
/// <summary> /// Inicializácia /// </summary> /// <param name="paX">poloha X</param> /// <param name="paY">poloha Y</param> /// <param name="paSirka"> šírka</param> /// <param name="paVyska">výška</param> /// <param name="paTyp">typ - teda na èo slúži</param> public Tlacitko(int paX, int paY, int paSirka, int paVyska, VykonavanaCinnost paTyp) { aTyp = paTyp; aObsah = new Rectangle(paX, paY, paSirka, paVyska); }
/// <summary> /// Rozhodovanie, čo je potrebné vykonať /// </summary> /// <param name="paE"></param> private void SpracujKliknutie(MouseEventArgs paE) { aMatica = aHra.DajHernuPlochu().DajMaticu(); aStav = false; for (int i = aKamera.OdsadenieY; i < aKamera.OdsadenieY + Kamera.cPocetOkienRiadky - PozadieMenu.cPosunZVrchu; i++) { for (int j = aKamera.OdsadenieX; j < aKamera.OdsadenieX + Kamera.cPocetOkienStplce - PozadieMenu.cPosunZBoku; j++) { var aktPolicko = aMatica[i, j]; if (aStav != true && aktPolicko.BoloKliknute(paE.X, paE.Y)) { aStav = true; int upresnenieCinnosti = aBocneMenu.DajZvolene(); VykonavanaCinnost cinnost = aBocneMenu.HlavnaCinnost; switch (cinnost) { case VykonavanaCinnost.vystavbaCiest: if (upresnenieCinnosti <= 11) { aktPolicko.PostavCestu(upresnenieCinnosti); } else if (upresnenieCinnosti <= 14) { aktPolicko.PostavZastavku(upresnenieCinnosti); } break; case VykonavanaCinnost.vystavbaZeleznic: if (upresnenieCinnosti <= 6) { aktPolicko.PostavZeleznicu(upresnenieCinnosti); } else if (upresnenieCinnosti <= 8) { aktPolicko.PostavStanicu(upresnenieCinnosti + 6); } break; case VykonavanaCinnost.upravaTerenu: if (upresnenieCinnosti == 1) { aktPolicko.Zburaj(true); } else if (upresnenieCinnosti == 2) { aktPolicko.Konvertuj(); } break; case VykonavanaCinnost.vystavbaLetisk: aktPolicko.PostavLetisko(); break; case VykonavanaCinnost.vystavbaVodnychCiest: switch (upresnenieCinnosti) { case (int)SmerDoku.boja: aktPolicko.PostavBoju(); break; default: aktPolicko.PostavDok(upresnenieCinnosti); break; } break; case VykonavanaCinnost.vyberCielov: if (aktPolicko.Zastavane is MiestoZastavenia) { aHra.Spolocnost.UpravovanyDP.PridajCiel((MiestoZastavenia)aktPolicko.Zastavane); } else if (aktPolicko.Vyroba != null && aktPolicko.Vyroba.Dok != null) { aHra.Spolocnost.UpravovanyDP.PridajCiel(aktPolicko.Vyroba.Dok); } break; case VykonavanaCinnost.bezna: if (aktPolicko.Prostriedky()) { aktPolicko.ZobrazFormProstriedkov(); } if (aktPolicko.Vyroba != null) { aktPolicko.Vyroba.ZobrazForm(); } else if (aktPolicko.Zastavane is Stanica) { (aktPolicko.Zastavane as Stanica).Zoskupenie.ZobrazForm(); (aktPolicko.Zastavane as Stanica).ZobrazForm(); } break; } } } } }
public BocneMenu() { HlavnaCinnost = VykonavanaCinnost.bezna; aSlot = 0; }