Beispiel #1
0
        public void spielerLaufen(Point richtungsVektor)
        {
            Point position = new Point(spielerAktiv.getPosition().X, spielerAktiv.getPosition().Y);

            position.Offset(richtungsVektor);

            if (!isPosInFeld(position))
            {
                return;
            }

            if (isFeldBelegt(position))
            {
                Objekt objekt = getObjektAufFeld(position);

                if (objekt.GetType() == typeof(Item))
                {
                    Item item = (Item)objekt;

                    sammleItem(spielerAktiv, item);
                    bewegeSpielerAktiv(richtungsVektor);
                }

                if (objekt.GetType() == typeof(Hindernis))
                {
                    Hindernis hindernis = (Hindernis)objekt;

                    if (hindernis.isBeweglich())
                    {
                        hindernisVerschieben(richtungsVektor, hindernis);
                    }
                }

                if (objekt.GetType() == typeof(Spieler))
                {
                    starteDuell();
                }
            }
            else
            {
                bewegeSpielerAktiv(richtungsVektor);
            }
        }
Beispiel #2
0
        public void spielfeldKippen(Point richtungsVektor)
        {
            bool gerutscht;
            bool naechstePosInFeld;
            bool naechstePosFrei;
            Item itemGesammeltSpieler1;
            Item itemGesammeltSpieler2;



            do
            {
                gerutscht             = false;
                itemGesammeltSpieler1 = null;
                itemGesammeltSpieler2 = null;

                foreach (Objekt objekt in feldObjekte)
                {
                    Point position = new Point(objekt.getPosition().X, objekt.getPosition().Y);
                    position.Offset(richtungsVektor);
                    naechstePosInFeld = isPosInFeld(position);
                    naechstePosFrei   = !isFeldBelegt(position);

                    if (objekt.GetType() == typeof(Hindernis))
                    {
                        Hindernis hindernis = (Hindernis)objekt;

                        if (hindernis.isBeweglich() && naechstePosFrei && naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }

                    if (objekt.GetType() == typeof(Item))
                    {
                        if (naechstePosFrei && naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }

                    if (objekt.GetType() == typeof(Spieler))
                    {
                        if (!naechstePosFrei)
                        {
                            if (getObjektAufFeld(position).GetType() == typeof(Item))
                            {
                                if (objekt.Equals(spieler1))
                                {
                                    itemGesammeltSpieler1 = (Item)getObjektAufFeld(position);
                                }
                                else if (objekt.Equals(spieler2))
                                {
                                    itemGesammeltSpieler2 = (Item)getObjektAufFeld(position);
                                }

                                objekt.verschiebeUm(richtungsVektor);
                                gerutscht = true;
                            }
                            else if (getObjektAufFeld(position).GetType() == typeof(Spieler))
                            {
                                starteDuell();
                            }
                        }
                        else if (naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }
                }

                if (itemGesammeltSpieler1 != null)
                {
                    sammleItem(spieler1, itemGesammeltSpieler1);
                }

                if (itemGesammeltSpieler2 != null)
                {
                    sammleItem(spieler2, itemGesammeltSpieler2);
                }
            } while (gerutscht);
        }