Exemplo n.º 1
0
        private void ucitajMenu_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dialog = new OpenFileDialog()) {
                dialog.InitialDirectory = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "pohranjeno";
                dialog.FileName         = "sejv.igra";
                dialog.Filter           = Postavke.Jezik[Kontekst.WindowsDijalozi, "TIP_SEJVA"].tekst(null) + " (*.igra)|*.igra";

                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    GZipStream   zipStream = new GZipStream(new FileStream(dialog.FileName, FileMode.Open), CompressionMode.Decompress);
                    StreamReader citac     = new StreamReader(zipStream);

                    string ucitanaIgra = citac.ReadToEnd();
                    citac.Close();

                    this.igra = IgraZvj.Ucitaj(ucitanaIgra);
                    igrac     = igra.trenutniIgrac();

                    pomakPogleda       = null;
                    prikazMape         = new PrikazMape(igra);
                    this.picMapa.Image = prikazMape.slikaMape;
                    noviKrugPogled();
                }
            }
        }
Exemplo n.º 2
0
        private void picMapa_Click(object sender, EventArgs e)
        {
            MouseEventArgs mouseEvent = (MouseEventArgs)e;
            int            x          = mouseEvent.X;
            int            y          = mouseEvent.Y;

            Zvijezda odabranaZvijezda = igra.mapa.najblizaZvijezda(
                prikazMape.XnaMapi(x),
                prikazMape.YnaMapi(y), 0.5);

            if (odabranaZvijezda != null)
            {
                if (frmFlotaPokret != null && frmFlotaPokret.Visible && frmFlotaPokret.Enabled)
                {
                    frmFlotaPokret.postaviOdrediste(odabranaZvijezda);
                    return;
                }
                else
                {
                    odaberiZvijezdu(odabranaZvijezda, true);
                }
            }

            pomakPogleda = new Tocka <double>(x / (double)picMapa.Width, y / (double)picMapa.Height);
        }
Exemplo n.º 3
0
        private void timerAnimacija_Tick(object sender, EventArgs e)
        {
            if (pomakPogleda == null)
            {
                return;
            }

            int pomakNaX = (int)(picMapa.Width * pomakPogleda.x);
            int pomakNaY = (int)(picMapa.Height * pomakPogleda.y);
            int dx       = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, pomakNaX, 4);
            int dy       = odrediPomakScrolla(picMapa.Height, pnlMapa.Height, pnlMapa.VerticalScroll, pomakNaY, 4);

            if (dx == 0)
            {
                dx = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, pomakNaX, 4);
            }

            pnlMapa.HorizontalScroll.Value += dx;
            pnlMapa.VerticalScroll.Value   += dy;

            if (dx == 0 && dy == 0)
            {
                pomakPogleda = null;
            }
        }
Exemplo n.º 4
0
        void RacunajSjeciste()
        {
            NumberFormatInfo nfi = new NumberFormatInfo
            {
                NumberDecimalSeparator = "."
            };
            Tocka t = sjeciste.IzracunajSjeciste(qe, qe2);

            label4.Text = "Koordinate sjecišta:\n(" + t.X.ToString(nfi) + " , " + t.Y.ToString(nfi) + ")";
        }
Exemplo n.º 5
0
        private void centrirajZvijezdu(Zvijezda zvijezda)
        {
            int x = prikazMape.XsaMape(igrac.odabranaZvijezda.x);
            int y = prikazMape.YsaMape(igrac.odabranaZvijezda.y);

            x = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, x, 0);
            y = odrediPomakScrolla(picMapa.Height, pnlMapa.Height, pnlMapa.VerticalScroll, y, 0);
            pnlMapa.HorizontalScroll.Value += x;
            pnlMapa.VerticalScroll.Value   += y;
            pomakPogleda = null;
        }
Exemplo n.º 6
0
        /// Vrne na kateri strani je tocka t3 glede na daljico t1 in t2
        /// ce je nad daljico je -1 drgace pa 1
        int Stran(Tocka t1, Tocka t2, Tocka t3)
        {
            int val = (t3.y - t1.y) * (t2.x - t1.x) - (t2.y - t1.y) * (t3.x - t1.x);

            if (val > 0)
            {
                return(1);
            }
            if (val < 0)
            {
                return(-1);
            }
            return(0);
        }
Exemplo n.º 7
0
        public FormIgra(IgraZvj igra)
        {
            InitializeComponent();

            this.igra = igra;
            igrac     = igra.trenutniIgrac();

            this.frmFlotaPokret = new FormFlotaPokret(this);
            this.AddOwnedForm(frmFlotaPokret);

            pomakPogleda       = null;
            prikazMape         = new PrikazMape(igra);
            this.picMapa.Image = prikazMape.slikaMape;

            tabCtrlDesno.ImageList           = new ImageList();
            tabCtrlDesno.ImageList.ImageSize = new Size(32, 32);
            tabCtrlDesno.ImageList.Images.Add(new Bitmap(1, 1));
            tabCtrlDesno.ImageList.Images.Add(Slike.PlanetTab[Planet.Tip.ASTEROIDI][0].image);
            tabCtrlDesno.ImageList.Images.Add(Slike.FlotaTab);
            tabPageZvijezda.ImageIndex = 0;
            tabPageKolonija.ImageIndex = 1;
            tabPageFlote.ImageIndex    = 2;

            //listViewPlaneti.LargeImageList = new ImageList();
            //listViewPlaneti.LargeImageList.ImageSize = new Size(32, 32);
            //Image[] planetImages = new Image[Slike.PlanetImageIndex.Count];
            //foreach (Image img in Slike.PlanetImageIndex.Keys)
            //	planetImages[Slike.PlanetImageIndex[img]] = img;
            //listViewPlaneti.LargeImageList.Images.AddRange(planetImages);

            btnCivilnaGradnja.Text = "";
            btnVojnaGradnja.Text   = "";

            tvFlota.ImageList           = new ImageList();
            tvFlota.ImageList.ImageSize = new Size(20, 20);
            postaviJezik();
            postaviAkcijeBroda();

            for (int i = 0; i < 15; i++)
            {
                BriefPlanetItem planetInfo = new BriefPlanetItem();
                planetInfo.Click += this.listViewPlaneti_Click;

                planetInfoi[i] = planetInfo;
                planetiFlowPanel.Controls.Add(planetInfo);
            }

            this.Font = Postavke.FontSucelja(this.Font);
        }
Exemplo n.º 8
0
        public static int orentacija(Tocka t1, Tocka t2, Tocka t3)
        {
            int val = (t2.y - t1.y) * (t3.x - t2.x) -
                      (t2.x - t1.x) * (t3.y - t2.y);

            if (val == 0)
            {
                return(0);          // kolinearna
            }
            if (val > 0)
            {
                return(1);
            }
            else
            {
                return(2);
            }
        }
Exemplo n.º 9
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (tocke_zgenerirane)
            {
                Brush    aBrush = (Brush)Brushes.Black; // za risanje tock
                Brush    bBrush = (Brush)Brushes.Red;   // za risanje tock
                Pen      pen    = new Pen(ForeColor);   // za risanje daljic med tockama
                Graphics g      = this.CreateGraphics();

                if (radioButton3.Checked == true)
                {
                    /// Jarvisov obhod
                    Tocka[] a = new Tocka[stevilo_tock];
                    for (int i = 0; i < stevilo_tock; i++)
                    {
                        a[i] = new Tocka(tocke[i].x, tocke[i].y); // si shranimo tocke v novo polje
                    }

                    Jarvisov_obhod(a, stevilo_tock); // klicemo funkcijo Jarisov obhod
                    tocke.Clear();
                }
                else if (radioButton4.Checked == true)
                {
                    /// Hitra konveksna lupina
                    //MessageBox.Show("Hitra konveksna lupina");
                    Tocka[] a = new Tocka[stevilo_tock];
                    for (int i = 0; i < stevilo_tock; i++)
                    {
                        a[i] = new Tocka(tocke[i].x, tocke[i].y); // si shranimo tocke v novo polje
                    }

                    Hitra_konveksna_lupina(a, stevilo_tock); // klicemo funkcijo
                    tocke.Clear();
                }
            }
            else
            {
                MessageBox.Show("Tocke se niso zgenerirane");
            }
        }
Exemplo n.º 10
0
        void HKL(Tocka tocka_min, Tocka tocka_max, int stran)
        {
            Brush    aBrush = (Brush)Brushes.Black; // za risanje tock
            Brush    bBrush = (Brush)Brushes.Red;   // za risanje tock
            Pen      pen    = new Pen(ForeColor);   // za risanje daljic med tockama
            Graphics g      = this.CreateGraphics();

            int index        = -1;
            int max_razdalja = 0;

            // poiscemo najvecjo razdaljo od tocke do daljice, ki je na pravi strani daljice
            for (int i = 0; i < stevilo_tock; i++)
            {
                int temp = razdalja(tocka_min, tocka_max, tocke[i]);
                if (Stran(tocka_min, tocka_max, tocke[i]) == stran && temp > max_razdalja)
                {
                    index        = i;
                    max_razdalja = temp;
                }
            }

            if (index > 0)
            {
                g.DrawLine(pen, tocke[index].x, tocke[index].y, tocka_max.x, tocka_max.y);
                g.DrawLine(pen, tocke[index].x, tocke[index].y, tocka_min.x, tocka_min.y);
            }

            // ce ne najdemo dobene damo zadni dve tocki v lupino
            if (index == -1)
            {
                lupina_HKL.Add(tocka_min);
                lupina_HKL.Add(tocka_max);
                return;
            }

            // Rekurzivno klice sama sebe
            HKL(tocke[index], tocka_min, -Stran(tocke[index], tocka_min, tocka_max));
            HKL(tocke[index], tocka_max, -Stran(tocke[index], tocka_max, tocka_min));
        }
Exemplo n.º 11
0
    static void Main(string[] args)
    {
        Tocka t = new Tocka(1, -2);

        Console.WriteLine("Toèka ({0},{1}) je u {2}.kvadrantu.", t.cx, t.cy, t.Kvadrant());
    }
Exemplo n.º 12
0
 internal static string Udaljenost2D(Tocka A, Tocka B)
 {
     return(Math.Sqrt(Math.Pow(A.X - B.X, 2) + Math.Pow(A.Y - B.Y, 2)).ToString());
 }
Exemplo n.º 13
0
 /// vrne razdaljo od tocke do daljice
 int razdalja(Tocka t1, Tocka t2, Tocka t3)
 {
     return(Math.Abs((t3.y - t1.y) * (t2.x - t1.x) - (t2.y - t1.y) * (t3.x - t1.x)));
 }