Vol7r1x
Vol7r1x

Reputation: 7

Problem with 2 canvas in my wpf snake game

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

Answers (0)

Related Questions