Reputation: 7
I have the problem that in the second level of my snake game I use another canvas on the same window and there it does not remove the apples on the first canvas without problems.
Here is the Code:
Main Class
HitTestResult treffer2 = VisualTreeHelper.HitTest(spielfeld2, schlange[0].LieferePosition());
if (treffer2 != null)
{
string name = ((Shape)(treffer2.VisualHit)).Name;
if (name == "Grenze" || name == "Schlange" || name == "hinterniss")
{
SpielEnde();
}
else if (name == "Apfel" || name == "Kollision")
{
punkte = spielpunkte.VeraenderePunkte(punkteMehr);
punktAnzeige.Content = punkte;
// Update der Beschleunigungszeit
UpdateBeschleunigungszeit();
// Geschwindigkeit alle 50 Punkte erhöhen
if (punkte % 50 == 0 && geschwindigkeit > 100)
{
geschwindigkeit -= 100;
timerSchlange.Interval = TimeSpan.FromMilliseconds(geschwindigkeit);
}
//ein Teil hinten an die Schlange anhängen
Schlangenteil sTeil = new(new Point(schlange[schlange.Count - 1].LiefereAltePosition().X, schlange[schlange.Count - 1].LiefereAltePosition().Y + schlange[schlange.Count - 1].LiefereGroesse()), Colors.Black);
schlange.Add(sTeil);
// Neuen Apfel erzeugen
meinApfel!.Entfernen(spielfeld2);
meinApfel = new(Colors.Green, 20);
meinApfel.Anzeigen(spielfeld2, balkenBreite);
}
}
Apple Class:
public void Entfernen(Canvas meinCanvas)
{
//die beiden Objekte entfernen
meinCanvas.Children.Remove(kreis);
meinCanvas.Children.Remove(rechteckKollision);
}
I have looked through the complete code several times and cannot find any errors.
Upvotes: -1
Views: 46