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
        public FormPlaneti(IgraZvj igra)
            : this()
        {
            this.igra = igra;

            foreach (var kolonija in igra.trenutniIgrac().kolonije)
            {
                planetList.Controls.Add(new PlanetItem(kolonija));
            }
        }
Exemplo n.º 3
0
        public FormZvijezde(IgraZvj igra) : this()
        {
            this.igra = igra;

            foreach (var uprava in igra.mapa.ZvjezdaneUprave())
            {
                if (uprava.Igrac == igra.trenutniIgrac())
                {
                    starList.Controls.Add(new StarItem(uprava));
                }
            }
        }
Exemplo n.º 4
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.º 5
0
        public Image osvjezi()
        {
            if (_slikaMape != null)
            {
                _slikaMape.Dispose();
            }

            Bitmap   bmpSlika = new Bitmap((int)(skala * (maxX - minX + 2)), (int)(skala * (maxY - minY + 2)));
            Graphics g        = Graphics.FromImage(bmpSlika);

            g.Clear(Color.Black);
            Font  font               = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold);
            Igrac trenutniIgrac      = igra.trenutniIgrac();
            Pen   crvPen             = new Pen(Color.DarkBlue);
            Pen   linijaOdredistePen = new Pen(Color.Green);

            foreach (Zvijezda zvj in igra.mapa.zvijezde)
            {
                if (trenutniIgrac.posjeceneZvjezde.Contains(zvj))
                {
                    foreach (Zvijezda odrediste in zvj.crvotocine)
                    {
                        if (odrediste.id > zvj.id || !trenutniIgrac.posjeceneZvjezde.Contains(odrediste))
                        {
                            g.DrawLine(crvPen, xyZvijezde(zvj), xyZvijezde(odrediste));
                        }
                    }
                }
            }

            foreach (Zvijezda zvj in igra.mapa.zvijezde)
            {
                if (zvj.tip == Zvijezda.Tip_Nikakva)
                {
                    continue;
                }

                Point xy = xyZvijezde(zvj);
                int   d  = (int)(Math.Sqrt(zvj.velicina) * VELICINA_SLIKE_ZVIJEZDE);

                g.DrawImage(
                    Slike.ZvijezdaMapa[zvj.tip],
                    new Rectangle(xy.X - d / 2, xy.Y - d / 2, d, d)
                    );

                if (skala >= VELICINA_SLIKE_ZVIJEZDE / 2)
                {
                    Brush bojaImena;
                    if (trenutniIgrac.posjeceneZvjezde.Contains(zvj))
                    {
                        bool imaKoloniju = false;
                        foreach (Planet planet in zvj.planeti)
                        {
                            if (planet.kolonija != null)
                            {
                                if (planet.kolonija.Igrac.id == trenutniIgrac.id)
                                {
                                    imaKoloniju = true;
                                }
                            }
                        }
                        bojaImena = (imaKoloniju) ?
                                    new SolidBrush(trenutniIgrac.boja) :
                                    new SolidBrush(Color.FromArgb(192, 192, 192));
                    }
                    else
                    {
                        bojaImena = new SolidBrush(Color.FromArgb(64, 64, 64));
                    }
                    g.DrawString(zvj.ime, font, bojaImena, xy.X - g.MeasureString(zvj.ime, font).Width / 2, xy.Y + VELICINA_SLIKE_ZVIJEZDE / 2);
                }

                bool imaFlote = false;
                foreach (Igrac igrac in igra.igraci)
                {
                    if (igrac.floteStacionarne.ContainsKey(zvj))
                    {
                        imaFlote = true;
                    }
                }
                if (imaFlote)
                {
                    g.DrawImage(Slike.Flota[trenutniIgrac.boja], xy.X + VELICINA_SLIKE_ZVIJEZDE / 2, xy.Y - VELICINA_SLIKE_ZVIJEZDE / 2);
                }

                if (zvj == trenutniIgrac.odabranaZvijezda)
                {
                    Image img = Slike.SlikaOdabiraZvijezde[0];
                    g.DrawImage(img, new Rectangle(xy.X - img.Width / 2, xy.Y - img.Height / 2, img.Width, img.Height));
                }
                else if (zvj == trenutniIgrac.odredisnaZvijezda)
                {
                    Image img = Slike.SlikaOdabiraZvijezde[1];
                    g.DrawImage(img, new Rectangle(xy.X - img.Width / 2, xy.Y - img.Height / 2, img.Width, img.Height));
                }
            }

            foreach (PokretnaFlota flota in trenutniIgrac.flotePokretne)
            {
                Point xy          = xyFlote(flota);
                Point xyOdrediste = xyZvijezde(flota.odredisnaZvj);
                g.DrawLine(linijaOdredistePen, xy, xyOdrediste);

                xy.X -= Slike.Flota[trenutniIgrac.boja].Size.Width / 2;
                xy.Y -= Slike.Flota[trenutniIgrac.boja].Size.Height / 2;
                g.DrawImage(Slike.Flota[trenutniIgrac.boja], xy);
            }

            g.Dispose();

            this._slikaMape = bmpSlika;
            return(bmpSlika);
        }