next up previous
Next: Attribute Up: Übersicht: Ablauf von Bewegung Previous: Ablauf der Insektenbewegung auf

Ablauf des Fressens auf dem Server


 
Abbildung 4: Ablauf des Fressens auf dem Server
\begin{figure}\begin{center}
\vspace{1.6cm}
\epsfbox{call3.eps}\\\end{center}\end{figure}



Ähnlich wie bei der Bewegung verhält es sich beim Fressen: Will ein Insekt ein 'Ding' (also ein anderes Insekt, eine Pflanze oder einen Stein) fressen, so beginnt die Ausführungskette mit der Angabe eines Zielobjekts (durch Sim::ThingIndex gekennzeichnet) und dem Aufruf von Sim::Insect::doEat().Anders als bei der Bewegung hat das Fressen keinerlei Auswirkung auf die physikalische Ebene, in doEat() wird allein der Eater zur Aufnahme des Zielobjektes in eine Liste veranlaßt.


 
Abbildung 5: Ablauf des Fressens im Kernel
\begin{figure}\begin{center}
\vspace{0.1cm}
\epsfbox{call4.eps}\\\end{center}\end{figure}



Das Fressen an sich wird vollständig von processEat() übernommen. Dort wird neben der Überprüfung der Distanz zum Zielobjekt auch die Funktion Eater_.test() aufgerufen, in der die prinzipielle Möglichkeit des Fressens überprüft wird. Bei positivem Ergebnis wird nun die Methode tryEat() im Zielobjekt aufgerufen, die für den Transfer der Nährstoffe sorgt. Die so erhaltenen Nährwerte werden dann an den Eater übergeben, der die resultierenden Angleichungen an den eigenen Attribute vornimmt.


next up previous
Next: Attribute Up: Übersicht: Ablauf von Bewegung Previous: Ablauf der Insektenbewegung auf
Tim Paehler
1998-05-12