DudeWars Doku

final public int mountSensor( float relativeBearing, float spread );
  Montiert einen neuen Sensor an den Dude, falls noch Platz ist. Der Sensor
  zeigt in Richtung relativeBearing, sein Öffnungswinkel ist spread.
  Liefert als Ergebnis eine ID zurück, mit der der Sensor abgefragt
  werden kann. War es nicht möglich, den Sensor zu montieren, ist ID<0

final public void changeSensor( int sensorID, float relativeBearing, float spread );
  Richtet den Sensor mit der ID sensorID auf relativeBearing aus 
  und stellt den Öffnungswinkel auf spread
  Kosten Zeit:    CONST
  Kosten Energie: CONST

final synchronized public Watch querySensor( int sensoID );
  Liefert Typ und Distanz des nächsten Objekts im Sensor-Kegel (Dude, Wrack, Wand, ...)
  Blickrichtung und Position des Sensors sind wichtig
  Kosten Zeit:    CONST
  Kosten Energie: CONST

final synchronized public void turn( float degrees );
  Dreht den Dude um degrees Grad. Positives degree steht für eine mathematisch positive 
  Drehung, negatives  für eine negative Drehung
  Kosten Zeit:    CONST * |degrees|
  Kosten Energie: CONST * |degrees|

final synchronized public void move( float distance );
  Bewegt den Dude um distance Einheiten nach vorne (positive distance)
  oder rückwärts (negative distance)
  Kosten Zeit:    CONST * |distance|
  Kosten Energie: CONST * |distance|

final synchronized public void extractor();
  Feuert den Energie-Extraktor-Strahl in Blickrichtung.
  Trifft dieser Strahl einen anderen Dude, überträgt er Energie diesem Dude auf den eigenen
  Kosten Zeit:    CONST
  Kosten Energie: CONST
  Gewinn Energie:  if( hit target ) (CONST aber höchstens Energie des Ziels)*Schwächung else 0
  Kosten für Ziel: if( hit target )  CONST

final public Vec2D getPos();
  Ermittelt die aktuelle Position des Dudes

final public float getBearing();
  Ermittelt die aktuelle Blickrichtung des Dudes (Intervall [0..360[)

final public float getEnergy();
  Ermittelt die Energie des Dudes


Nun noch ein paar Funktionen zum Debuggen des Dudes. Diese Funktionen zeigen diverse Grafik-Objekte an, wenn der Parameter debugDraw auf true steht. slot ist der Name eines Grafik-Objekts. Mit diesem Namen kann man es später auch ersetzen. color ist die Farbe des Objekts in Hex-Notation 0xRRGGBB. Alle Positionen in Dudewelt Koordinaten/Einheiten. final public void debugClearAll(); Löscht alle Zeichen-Slots final public void debugClear( String slot ); Löscht den Zeichen-Slot mit dem Namen slot final public void debugStr( String slot, int color, Vec2D pos, String text ); Gibt einen text an einer bestimmten Position pos aus final public void debugLine( String slot, int color, Vec2D p0, Vec2D p1 ); Zeichnet eine Linie von p0 nach p1 final public void debugRect( String slot, int color, Vec2D p0, Vec2D p1 ); Zeichnet ein Rechteck mit den Eckpunkten p0 und p1 final public void debugRect( String slot, int color, AABB aabb ); Zeichnet die axis-aligned bounding box aabb. Eine AABB enthält die Vektoren min und max, die jeweils die minimalen und die maximalen X- und Y-Werte der Box enthalten. final public void debugCircle( String slot, int color, Vec2D mid, float radius ); Zeichnet einen Kreis mit Mittelpunkt mid und Radius radius final public void debugArc( String slot, int color, Vec2D mid, float radius, float start, float arc ); Zeichnet einen Kreisbogen, der beim Winkel start beginnt und Länge arc hat (in Grad)