Snake Image-Datei einfügen
-
Hallo Leute, bin neu hier im Forum!
Ich habe ein Open-Source Snake gefunden, dieses möchte ich für ein Uni-Projekt adaptieren.
Unter anderem wollen wir ein Bild statt der normalen Standard-Grafik des Essens, des Schlangenkopfes als auch des Körpers verwenden.private void pbCanvas_Paint(object sender, PaintEventArgs e) //Methode zur graphischen Darstellung der Schlange { Graphics canvas = e.Graphics; //welches Canvas wir verwenden if (!Settings.GameOver) { for (int i = 0; i < Snake.Count; i++) { Brush snakeColour; if (i == 0) snakeColour = Brushes.Black; //Zeichnet Kopf der Schlange else snakeColour = Brushes.Green; //Zeichnet Körper der Schlange canvas.FillEllipse(snakeColour, new Rectangle(Snake[i].X * Settings.Width, Snake[i].Y * Settings.Height, Settings.Width, Settings.Height)); canvas.FillEllipse(Brushes.Red, //Zeichnet die Food-Objekte new Rectangle(food.X * Settings.Width, food.Y * Settings.Height, Settings.Width, Settings.Height)); } } else { string gameOver =" Game Over \nErreichte Punkte: " + Settings.Score + "\nEnter für neues Spiel"; lblGameOver.Text = gameOver; //zeigt Lable bei GameOver an lblGameOver.Visible = true; } }
Ich habe die Bilder "Apfel", "Schwanz" und "Kopf" schon eingefügt.
Ich weiß auch, dass ich den Befehl e.Graphics.DrawImage(new Bitmap("Apfel.jpg"), KoordianteX, KoordianteY, Imagehöhe, Imagebreite); verwenden muss.
Nur habe ich leider keine Ahnung was ich genau austauschen muss dass es funktioniert. Ich habe schon viel probiert, doch immer wieder taucht ein anderer Fehler auf.
Ich will einfach nur statt dem Standard-Kopf (Rechteck, schwarz) irgendeine Bilddatei nehmen.
Und statt dem Standard-Food möchte ich die Datei "Apfel.jpg" verwenden.Könnt ihr mir helfen? Danke!
LG
Instant
-
Hallo,
wenn es nur um das Anzeigen des Schlangekopfes/Schlangenkörpers geht ist die relevante Stelle für dich:
Brush snakeColour; if (i == 0) snakeColour = Brushes.Black; else snakeColour = Brushes.Green;
Wenn du einmal an dem Code dran bist, kannst du auch mal den englischen Bezeichner für Farbe korrigieren.
Was du tun musst:
Statt des Bruches das Image als Variable hinterlegen. - Dein Schlangenkopf ist wie du sicher erkennst dann an der Reihe, wenn i den Wert 0 hat. Ansonsten musst du ein Stück Schlangenkörper zeichnen. Wie du ein Bild zeichnest hast du ja bereits selbst herausgefunden.Der Apfel ist einfach, da du dort nur das FillEllipse gegen den Aufruf der DrawImage mit den notwendigen Parametern tauschen musst.
-
inflames2k schrieb:
Wenn du einmal an dem Code dran bist, kannst du auch mal den englischen Bezeichner für Farbe korrigieren.
Da gibt's nichts zu korrigieren, das ist halt BE und kein AE.
-
inflames2k schrieb:
Hallo,
wenn es nur um das Anzeigen des Schlangekopfes/Schlangenkörpers geht ist die relevante Stelle für dich:
Brush snakeColour; if (i == 0) snakeColour = Brushes.Black; else snakeColour = Brushes.Green;
Wenn du einmal an dem Code dran bist, kannst du auch mal den englischen Bezeichner für Farbe korrigieren.
Was du tun musst:
Statt des Bruches das Image als Variable hinterlegen. - Dein Schlangenkopf ist wie du sicher erkennst dann an der Reihe, wenn i den Wert 0 hat. Ansonsten musst du ein Stück Schlangenkörper zeichnen. Wie du ein Bild zeichnest hast du ja bereits selbst herausgefunden.Der Apfel ist einfach, da du dort nur das FillEllipse gegen den Aufruf der DrawImage mit den notwendigen Parametern tauschen musst.
Hm...das ist ja das Problem, wenn ich mich so gut auskennen würde würde ich nicht fragen.
Wie hinterlege ich denn ein Image als Variable?
Ich möchte einfach nur das Essen durch den Apfel ersetzen, den Körper durch "Schwanz.jpg" und den Kopf durch "Kopf.jpg".
Bezüglich Apfel:
canvas.DrawImage(new Bitmap ("Apfel.jpg", x, y, 10, 10)(Brushes.Red, //Zeichnet die Food-Objekte new Rectangle(food.X * Settings.Width, food.Y * Settings.Height, Settings.Width, Settings.Height)); }
Was passt ihm da denn nicht? Muss ich noch mehr austauschen?
Und wie legt man eine Variable an?
So, richtig?
var newImage = Image.FromFile("Apfel.jpg");
Und muss ich dann das "Brush" mit "Graphics" austuaschen oder wie?
Bin leider echt planlos..
Danke für die Hilfe!
-
Na gut..
var newImage = Image.FromFile("Apfel.jpg");
habe ich jetzt erstellt, das ist mein Apfelbild. (fürs essen)
e.Graphics.DrawImage(newImage, 10, 10); new Rectangle(food.X * Settings.Width, food.Y * Settings.Height, Settings.Width, Settings.Height);
Mit dem Code wird das Apfelbild am Bildschirm ausgegeben, das wars auch schon wieder. Ich kann den Apfel nicht essen, geschweige denn dass er random am Bildschirm auftaucht nach jedem neuen Starten. Ich weiß nicht welche Paramter ich nehmen soll, bin da leider ziemlich planlos.
Aber der Apfel wird wenigstens mal am Bildschirm angezeigt :p
-
Habs geschafft - jetzt muss ich nur noch schauen wie ich das Spiel bzw. die Bilder so vergrößer dass man auch was erkennen kann.
Dankeschön!