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