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; }
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(); }