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)