/// <summary> /// Konštruktor inicializuje všetko potrebné /// </summary> /// <param name="paBocneMenu">trieda, ktorá spravuje bočné menu</param> public TlacitkaNaPloche(BocneMenu paBocneMenu) { aHra = Hra.DajInstanciu(); aKamera = Kamera.DajInstanciu(); aBocneMenu = paBocneMenu; aStav = false; }
/// <summary> /// Vykonanie pohybu. Vie sa �iasto�ne vyh�ba� prek�kam a �iasto�ne h�ada� trasu, /// preto potrebuje vodiace b�je, ktor� musia by� umiestnen� "dostato�ne" spr�vne... /// </summary> public override void VykonajPohyb() { if (Strateny) return; if (aAktualnyFrame == FramePohyb) { bool podarilosa = aPreferenciaPohybu ? PohybPreferencia1() : PohybPreferencia2(); if (podarilosa) { } else if (Poloha.Stlpec > aPolohaDo.Stlpec || Poloha.Stlpec < aPolohaDo.Stlpec || Poloha.Riadok > aPolohaDo.Riadok || Poloha.Riadok < aPolohaDo.Riadok) { aPokusyNahPoh = 0; NahodnyPohyb(); ZmenPreferenciu(); } else { JeVCieli = true; Zastav(); } if (Strateny) { Sprava.Info("Lo� sa stratila"); Kamera.DajInstanciu().VycentrujPohlad(Poloha); } aAktualnyFrame = 0; } aAktualnyFrame++; }
/// <summary> /// Vykreslenie obr�zku s krontrolou, �i sa nach�dza na kamere /// </summary> /// <param name="paGafika"></param> public void DrawImage(Graphics paGafika) { aKamera = Kamera.DajInstanciu(); if (Skryte) return; if (aX >= (aKamera.OdsadenieX - 2) * Policko.cVelkostPolicka && aX < (aKamera.OdsadenieX + Kamera.cPocetOkienStplce - PozadieMenu.cPosunZBoku) * Policko.cVelkostPolicka) { if (aY >= (aKamera.OdsadenieY - 2) * Policko.cVelkostPolicka && aY < (aKamera.OdsadenieY + Kamera.cPocetOkienRiadky - PozadieMenu.cPosunZVrchu) * Policko.cVelkostPolicka) { int tempX = aX - aKamera.OdsadenieX * Policko.cVelkostPolicka + Policko.cVelkostPolicka * PozadieMenu.cPosunZBoku; int tempY = aY - aKamera.OdsadenieY * Policko.cVelkostPolicka + Policko.cVelkostPolicka * PozadieMenu.cPosunZVrchu; paGafika.DrawImage(aObrazok, tempX, tempY); aObdlznik = new Rectangle(tempX, tempY, aSirkaPX, aVyskaPX); } } }
/// <summary> /// Vyhľadanie trasy pokocou dijkstru /// </summary> /// <param name="paPolohaDo"></param> /// <returns></returns> public override bool NajdiTrasu(Poloha paPolohaDo) { JeVCieli = false; aHranaNaTrase = 0; aPoziciaNaHrane = 0; aTrasa = DijkstrovAlg.NajdiTrasu(Poloha, paPolohaDo, Druh); if (aTrasa == null) { Strateny = true; Sprava.Info("Vlak sa stratil"); Kamera.DajInstanciu().VycentrujPohlad(Poloha); return(false); } return(true); }
/// <summary> /// kon�truktor /// </summary> public ZakladObrazku() { aKamera = Kamera.DajInstanciu(); Skryte = false; }