locked
gepanzerte Käfer?

    Frage

  • Also ich habe mein kleines Völkchen aufgeteilt in 40 Sammler und 60 Krieger. Meine Krieger greifen auch die Käfer an, nur wird den Käfern keine Energie abgezogen, sprich sie können nicht getötet werden. Dafür scheinen sie fleisig meine tapferen Krieger zu vernaschen.

    Wenn ich nun aber die Aktuelle Energie vom käfer heruntersetzen möchte, bekomme ich die meldung das die eigenschaft schreibgeschütz ist.

    Sind die käfer also unbesiegbar?
    Samstag, 4. November 2006 13:54

Antworten

  • Also bei mir funktioniert das wunderbar. Jedoch scheint an der Stelle ebenfalls ein "Bug" in der Doku zu existieren!?
    Denn nur wenn die Methode so aussieht, funktioniert es auch mit dem Käfer vernaschen:

    public override void Sieht(Käfer käfer){
    GreifeAn(käfer);
    }

    In der Doku steht, man soll GeheZuZiel(käfer) verwenden...nur da keine ZielErreicht(Käfer käfer) Methode existiert, kann man dann nicht darauf reagieren wie mir scheint...
    Naja, mit obigem Code geht es jedenfalls, da GreifeAn auch für bewegliche Ziele funktioniert.

    marco

    Samstag, 4. November 2006 14:25
  • GreifeAn(käfer) ruft selbst auch wieder nur GeheZu(käfer) auf. Die erste Methode ist deswegen mit drin, weil die zweite nicht wirklich klar ausdrückt, daß ein Kampf stattfinden soll. Beide Möglichkeiten funktionieren gleich. Wichtig ist, daß das Ziel der Ameise ein Käfer ist, sonst findet der Kampf nur in eine Richtung statt, d.h. dem Käfer passiert nichts.
    Sonntag, 5. November 2006 12:18

Alle Antworten

  • Also bei mir funktioniert das wunderbar. Jedoch scheint an der Stelle ebenfalls ein "Bug" in der Doku zu existieren!?
    Denn nur wenn die Methode so aussieht, funktioniert es auch mit dem Käfer vernaschen:

    public override void Sieht(Käfer käfer){
    GreifeAn(käfer);
    }

    In der Doku steht, man soll GeheZuZiel(käfer) verwenden...nur da keine ZielErreicht(Käfer käfer) Methode existiert, kann man dann nicht darauf reagieren wie mir scheint...
    Naja, mit obigem Code geht es jedenfalls, da GreifeAn auch für bewegliche Ziele funktioniert.

    marco

    Samstag, 4. November 2006 14:25
  • ok, da wollte ich meinen Ameisen doch ein wenig "zuviel" beibringen...
    der Quellcode,den ich geschrieben habe sieht so aus:

    public override void Sieht(Käfer käfer)
    {
    LasseNahrungFallen();
    int entfernung, richtung;
    entfernung = Koordinate.BestimmeEntfernung(this, käfer);
    richtung = Koordinate.BestimmeRichtung(this, käfer);
    SprüheMarkierung(richtung, entfernung);
    if (AnzahlInSichtweite * MaximaleEnergie > käfer.AktuelleEnergie)
    {
    GreifeAn(käfer);
    }
    else GeheWegVon(käfer);
    }


    Sinn und Zweck meines Codes war, das die Ameisen gleich in Größeren Mengen angreifen, damit der Käfer erst gar keine Chance hat, an irgendeiner Ameise zu "knabbern". Ich hab mich da also an die Doku gehalten. Die Variable "AnzahlInUmgebung" aus der Dokumentation muss man umändern in "AnzahlInSichtweite", da es die in der Dokumentaion aufgeführte nicht gibt. Was hier halt noch fehlt ist, das die einzelne Ameise die den Käfer sieht, die anderen Ameisen zur Hilfe "rufen" kann, damit sie gleich im rudel angreifen können. mal schauen ob ich das umgesetzt bekomme.

    Dein vorschlag funktioniert selbstverständlich Marco. Danke für die Hilfe
    Samstag, 4. November 2006 15:10
  • GreifeAn(käfer) ruft selbst auch wieder nur GeheZu(käfer) auf. Die erste Methode ist deswegen mit drin, weil die zweite nicht wirklich klar ausdrückt, daß ein Kampf stattfinden soll. Beide Möglichkeiten funktionieren gleich. Wichtig ist, daß das Ziel der Ameise ein Käfer ist, sonst findet der Kampf nur in eine Richtung statt, d.h. dem Käfer passiert nichts.
    Sonntag, 5. November 2006 12:18