コード例 #1
0
ファイル: Hauptfenster.cs プロジェクト: AsciiRose/Schiffspiel
        private void zeichneFeld()
        {
            int zellGroeße    = 600 / spiel.getBreite();
            int randSpielfeld = 70;
            int randZelle     = 25 - spiel.getBreite() * 2;

            if (randZelle < 0)
            {
                randZelle = 0;
            }

            Bitmap newImg = new Bitmap(pictureBox1.Width, pictureBox1.Height);

            Graphics   g              = Graphics.FromImage(newImg);
            Pen        pen            = new Pen(Color.Black, 2);
            SolidBrush spieler1pinsel = new SolidBrush(spiel.getSpieler1Color());
            SolidBrush spieler2pinsel = new SolidBrush(spiel.getSpieler2Color());

            g.DrawImage(Resource1.Map002, 0, 0, pictureBox1.Width, pictureBox1.Height);

            for (int i = 0; i < spiel.getBreite(); i++)
            {
                for (int j = 0; j < spiel.getHoehe(); j++)
                {
                    g.DrawRectangle(pen, randSpielfeld + zellGroeße * i, randSpielfeld + zellGroeße * j, zellGroeße, zellGroeße);
                }
            }

            Bitmap objektBild;


            g.FillEllipse(spieler1pinsel,
                          randSpielfeld + (randZelle + 4) * 2 + zellGroeße * spiel.getSpieler1Pos().X,
                          randSpielfeld + (randZelle + 4) * 2 + zellGroeße * spiel.getSpieler1Pos().Y,
                          zellGroeße - (randZelle + 4) * 2 * 2, zellGroeße - (randZelle + 4) * 2 * 2);
            g.FillEllipse(spieler2pinsel,
                          randSpielfeld + (randZelle + 4) * 2 + zellGroeße * spiel.getSpieler2Pos().X,
                          randSpielfeld + (randZelle + 4) * 2 + zellGroeße * spiel.getSpieler2Pos().Y,
                          zellGroeße - (randZelle + 4) * 2 * 2, zellGroeße - (randZelle + 4) * 2 * 2);

            foreach (Objekt objekt in spiel.getFeldObjekte())
            {
                objektBild = objekt.getBild();

                g.DrawImage(
                    objektBild,
                    randSpielfeld + randZelle + zellGroeße * objekt.getPosition().X,
                    randSpielfeld + randZelle + zellGroeße * objekt.getPosition().Y,
                    zellGroeße - randZelle * 2, zellGroeße - randZelle * 2);
            }

            pictureBox1.Image = newImg;
        }
コード例 #2
0
ファイル: Hauptfenster.cs プロジェクト: AsciiRose/Schiffspiel
        private void setupNewGame()
        {
            if (spiel != null)
            {
                DialogResult resultNeuesSpiel = MessageBox.Show("Aktuell läuft noch ein Spiel. Willst du das aktuelle Spiel verwerfen und ein neues beginnen?", "Neues Spiel", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button3);
                if (resultNeuesSpiel != DialogResult.Yes)
                {
                    return;
                }
            }

            NeuesSpiel neuesSpielForm = new NeuesSpiel();

            neuesSpielForm.ShowDialog();

            if (neuesSpielForm.DialogResult != DialogResult.OK)
            {
                return;
            }

            spiel = new Spiel(15, 7, 5);
            pictureBox1.BackgroundImage = Resource1.wasser;
            pbSpielende.Minimum         = 0;
            pbSpielende.Value           = 0;
            pbSpielende.Maximum         = spiel.getSpielende();

            // Beispiel: Hindernis fest
            spiel.addFeldObjekt(new Hindernis("Mast", 1 * spiel.getBreite() / 4, spiel.getHoehe() / 2, false, 0, Resource1.mast));
            spiel.addFeldObjekt(new Hindernis("Mast", 2 * spiel.getBreite() / 4, spiel.getHoehe() / 2, false, 0, Resource1.mast));
            spiel.addFeldObjekt(new Hindernis("Mast", 3 * spiel.getBreite() / 4, spiel.getHoehe() / 2, false, 0, Resource1.mast));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));
            spiel.addFeldObjekt(new Hindernis("Zaun", spiel.getZufallFreiesFeld(), false, 0, Resource1.zaun));

            // Beispiel: Hindernis lose
            spiel.addFeldObjekt(new Hindernis("Anker", spiel.getZufallFreiesFeld(), true, 3, Resource1.anker));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));
            spiel.addFeldObjekt(new Hindernis("Truhe", spiel.getZufallFreiesFeld(), true, 1, Resource1.kiste));

            // Beispiel: Item
            spiel.addFeldObjekt(new Item("Paddel", spiel.getZufallFreiesFeld(), 10, Resource1.item));
            spiel.addFeldObjekt(new Item("Paddel", spiel.getZufallFreiesFeld(), 10, Resource1.item));
            spiel.addFeldObjekt(new Item("Paddel", spiel.getZufallFreiesFeld(), 10, Resource1.item));
            spiel.addFeldObjekt(new Item("Paddel", spiel.getZufallFreiesFeld(), 10, Resource1.item));
            spiel.addFeldObjekt(new Item("Seil", spiel.getZufallFreiesFeld(), 20, Resource1.item));
            spiel.addFeldObjekt(new Item("Fernrohr", spiel.getZufallFreiesFeld(), 25, Resource1.item));
            spiel.addFeldObjekt(new Item("Fernrohr", spiel.getZufallFreiesFeld(), 25, Resource1.item));
            spiel.addFeldObjekt(new Item("Steuer", spiel.getZufallFreiesFeld(), 15, Resource1.item));

            spiel.addSpieler(new Spieler(neuesSpielForm.getNameSpieler1(), new Point(-1, 1), Resource1.player1, neuesSpielForm.getFarbeSpieler1()));
            spiel.addSpieler(new Spieler(neuesSpielForm.getNameSpieler2(), new Point(-1, spiel.getHoehe() - 2), Resource1.player2, neuesSpielForm.getFarbeSpieler2()));

            printToConsole("Neues Spiel gestartet");
            printToConsole("'" + neuesSpielForm.getNameSpieler1() + "' und '" + neuesSpielForm.getNameSpieler2() + "' spielen");

            gbSpieler1.Text = neuesSpielForm.getNameSpieler1();
            gbSpieler2.Text = neuesSpielForm.getNameSpieler2();

            spiel.startNewRound();
            updateLabels();
            enableButtons();
            setNewRoundButtons();
            zeichneFeld();
            pictureBox1.Show();
        }