|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjrobots.simulation.simulationObjects.Pilot
jrobots.simulation.simulationObjects.JRobot2010
public abstract class JRobot2010
The jRobot designed for use as base class for deriving contest bots.
It originates from JRobot2008
and adds these functional
enhancements:
Launchable
sProjectile
Bullet
Missile
Droppable
sMine
TankTrap
Nested Class Summary |
---|
Nested classes/interfaces inherited from class jrobots.simulation.simulationObjects.Pilot |
---|
jrobots.simulation.simulationObjects.Pilot.DropperCommand, jrobots.simulation.simulationObjects.Pilot.LauncherAmmunition |
Field Summary |
---|
Fields inherited from class jrobots.simulation.simulationObjects.Pilot |
---|
DOWN, LEFT, memoryConsumption, RIGHT, UP |
Constructor Summary | |
---|---|
JRobot2010()
|
Method Summary | |
---|---|
protected void |
addDebugArrow(Vector start,
Vector end)
Mit Hilfe dieser Funktion kann ein Bot einen Pfeil auf's Spielfeld zeichnen. |
protected void |
addDebugCrosshair(Vector position)
Mit Hilfe dieser Funktion kann ein Bot ein Kreuz auf's Spielfeld zeichnen. |
protected void |
addDebugLine(float x1,
float y1,
float x2,
float y2)
|
protected void |
addDebugLine(Vector p1,
Vector p2)
Mit Hilfe dieser Funktion kann ein Bot eine Linie auf's Spielfeld zeichnen. |
protected static double |
getBulletReloadTime()
Liefert die Zeit in Sekunden, die nach dem Abfeuern eines Schusses mit dem Maschinengewehr vergehen muss, bis der Werfer wieder bereit ist. |
protected static double |
getBulletSpeed()
Liefert die Geschwindigkeit (in Meter pro Sekunde), mit der ein Maschinengewehrprojektil, das der Panzer verschiessen kann, fliegt. |
double |
getHealth()
Der Zustand eines Panzer s reicht von 0.0 (nächster Treffer
verschrottet Panzer) bis 1.0 (voll intakt). |
protected Scan |
getLastScan()
Liefert das Ergebnis des letzten "Scanblitzes". |
protected static double |
getMaxArenaDiameter()
Zwei Panzer können sich nicht weiter als den zurückgegebenen Wert voneinander entfernen. |
protected static double |
getMaxBackwardVelocity()
Retrieves the maximum backward velocity of the Panzer . |
protected static double |
getMaxForwardVelocity()
Retrieves the maximum forward velocity of the Panzer . |
protected static Angle |
getMaxScanAperture()
Liefert den größtmöglichen öffnungswinkel des Scanners. |
protected static double |
getMineReloadTime()
Liefert die Zeit in Sekunden, die nach dem Legen einer Mine vergehen muss, bis die Minenlegevorrichtung wieder bereit ist. |
protected static double |
getMissileReloadTime()
Liefert die Zeit in Sekunden, die nach dem Abfeuern eines normalen Geschosses vergehen muss, bis der Werfer wieder bereit ist. |
protected static double |
getMissileSpeedMax()
Liefert die maximale Geschwindigkeit (in Meter pro Sekunde), mit der die Lenkrakete, die der Panzer verschiessen kann, fliegt. |
protected Angle |
getOrientation()
Liefert die aktuelle Ausrichtung des Panzerkörpers. Dieser Wert stimmt nicht immer genau mit dem Winkel des Geschwindigkeitsvektors überein, da der Bot auch seitlich rutschen kann (z.B. |
protected Vector |
getPosition()
Liefert die aktuelle Position des Panzers im Spielfeld relativ zur oberen linken Ecke. |
protected static double |
getProjectileReloadTime()
Liefert die Zeit in Sekunden, die nach dem Abfeuern der Kanone vergehen muss, bis der Werfer wieder bereit ist. |
protected static double |
getProjectileSpeed()
Liefert die Geschwindigkeit (in Meter pro Sekunde), mit der das Kanonenprojektil, das der Panzer verschiessen kann, fliegt. |
protected static double |
getScanInterval()
Liefert die Zeit in Sekunden, die der Scanner zum "Nachladen" benötigt. |
protected static double |
getTankTrapReloadTime()
Liefert die Zeit in Sekunden, die nach dem Legen einer Mine vergehen muss, bis die Minenlegevorrichtung wieder bereit ist. |
protected double |
getTimeOfDropperReloaded()
Liefert den Zeitpunkt, zu dem die Legevorrichtung wieder nachgeladen ist. |
protected double |
getTimeOfLauncherReloaded()
Liefert den Zeitpunkt, zu dem die Abschussvorrichtung wieder nachgeladen ist. |
protected Vector |
getVelocity()
Liefert den aktuellen Geschwindigkeitsvektor des Panzers. |
protected boolean |
isScanFromNow()
Liefert true, wenn der aktuelle Scanwert im Scanner von diesem Frame stammt, also wenn gilt: getTime() == getLastScan().timeOfScan Der Scanner hat also in diesem Frame einen Scan durchgeführt. |
protected void |
setAutopilot(Angle direction,
double speed)
Diese Funktion aktiviert den Autopilot, welcher selbständig die Geschwindigkeiten der beiden Panzerketten regelt. Der Autopilot führt so lange mit der angegebenen Geschwindigkeit in die angegebene Richtung, bis diese Funktion mit neuen Daten nochmals aufgerufen wird. |
protected void |
setBodyColor(java.awt.Color newColor)
Hiermit kann eine Farbe eingestellt werden, mit der das Bild des Panzerkörpers gefiltert wird. |
protected void |
setDebugLines(Vector[] points)
Mit Hilfe dieser Funktion kann ein Bot mehrere Linien auf's Spielfeld zeichnen. |
protected void |
setDebugText(java.lang.String text)
übergibt dem Framework einen Text, den es direk unterhalb des umherfahrenden Bots anzeigt. |
protected void |
setDropMineCommand(boolean isToBeLayed)
Setzt einen Befehl an die Abwurfvorrichtung ab. |
protected void |
setDropTankTrapCommand(boolean isToBeLayed)
Setzt einen Befehl an die Abwurfvorrichtung ab. |
protected void |
setLaunchBulletCommand(Angle command)
Setzt einen Feuerbefehl an die Abschussvorrichtung ab. |
protected void |
setLaunchMissileCommand(Angle command)
Setzt einen Feuerbefehl an die Abschussvorrichtung ab. |
protected void |
setLaunchProjectileCommand(Angle command)
Setzt einen Feuerbefehl an die Abschussvorrichtung ab. |
protected void |
setMissileTarget(Vector targetPosition)
Mit dieser Routine kann die zuletzt abgeschossene Lenkrakete während des Fluges umprogrammiert werden. |
protected void |
setNameColor(java.awt.Color newNameColor)
Hiermit kann die Farbe des Schriftzuges verändert werden, der in der Arena über dem Bot angezeigt wird. |
protected void |
setScanAperture(Angle aperture)
Hiermit sagt man dem Scanner, mit welchem öffnungswinkel der nächste "Scanblitz" erfolgen soll. |
protected void |
setScanDirection(Angle scanDirection)
Setzt die Richtung, in die der nächste "Scanblitz" gehen soll. Z.B. |
protected void |
setTurretColor(java.awt.Color newColor)
Hiermit kann eine Farbe eingestellt werden, mit der das Bild des Panzerturms gefiltert wird. |
Methods inherited from class jrobots.simulation.simulationObjects.Pilot |
---|
actions, clone, getBodyColor, getNameColor, getSafeShootDistance, getTime, getTurretColor, init |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public JRobot2010()
Method Detail |
---|
protected final Scan getLastScan()
Note: The returned might be an unsuccessful scan. Check with
isTargetLocated
.
getLastScan
in class jrobots.simulation.simulationObjects.Pilot
protected final double getTimeOfLauncherReloaded()
Ist der Zeitpunkt kleiner oder gleich der momentanen Zeit, kann sofort eine beliebige Waffe abgeschossen werden.
getTimeOfLauncherReloaded
in class jrobots.simulation.simulationObjects.Pilot
protected final double getTimeOfDropperReloaded()
Ist der Zeitpunkt kleiner oder gleich der momentanen Zeit, kann sofort eine beliebiger Gegenstand gelegt werden.
getTimeOfDropperReloaded
in class jrobots.simulation.simulationObjects.Pilot
protected static final double getMaxArenaDiameter()
protected static final Angle getMaxScanAperture()
protected static final double getScanInterval()
protected static final double getMineReloadTime()
protected static final double getTankTrapReloadTime()
protected static final double getProjectileReloadTime()
protected static final double getBulletReloadTime()
protected static final double getMissileReloadTime()
protected static final double getProjectileSpeed()
protected static final double getBulletSpeed()
protected static final double getMissileSpeedMax()
protected final boolean isScanFromNow()
protected final Vector getPosition()
getPosition
in class jrobots.simulation.simulationObjects.Pilot
protected final Angle getOrientation()
getOrientation
in class jrobots.simulation.simulationObjects.Pilot
protected final Vector getVelocity()
getVelocity
in class jrobots.simulation.simulationObjects.Pilot
protected static final double getMaxForwardVelocity()
Panzer
.
protected static final double getMaxBackwardVelocity()
Panzer
.
public final double getHealth()
Panzer
s reicht von 0.0 (nächster Treffer
verschrottet Panzer) bis 1.0 (voll intakt). Sinkt der Zustand unter einen
Wert von 0.0, so ist der Kampf für diesen Panzer zu Ende.
getHealth
in class jrobots.simulation.simulationObjects.Pilot
protected final void setScanAperture(Angle aperture)
setScanAperture
in class jrobots.simulation.simulationObjects.Pilot
aperture
- öffnungswinkelprotected final void setScanDirection(Angle scanDirection)
setScanDirection(new RadAngle(Math.PI));
setScanDirection
in class jrobots.simulation.simulationObjects.Pilot
scanDirection
- gewünschte Scanrichtung
java.lang.NullPointerException
- wenn der Parameter null
istprotected final void setAutopilot(Angle direction, double speed)
setAutopilot
in class jrobots.simulation.simulationObjects.Pilot
direction
- gewünschte Fahrtrichtungspeed
- gewünschte Geschwindigkeit im Intervall [-1...+1]protected final void setLaunchProjectileCommand(Angle command)
Ist schon ein -noch nicht ausgeführter- Feuerbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Kanone. Sobald sie
nachgeladen ist * Setzt einen Feuerbefehl an die Abschussvorrichtung ab.
Ist schon ein -noch nicht ausgeführter- Feuerbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Kanone. Sobald sie
nachgeladen ist, wird der zuletzt eingestellte Befehl ausgefürt.
Folgende Befehle gibt es für die Abschussvorrichtung:
setLaunchProjectileCommand
- die KanonesetLaunchBulletCommand
- das MaschinengewehrsetLaunchMissileCommand
- die LenkraketesetMissileTarget
setzen)
setLaunchProjectileCommand
in class jrobots.simulation.simulationObjects.Pilot
command
- - Richtung, in die geschossen werden soll (absolut)protected final void setLaunchBulletCommand(Angle command)
Ist schon ein -noch nicht ausgeführter- Feuerbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Kanone. Sobald sie
nachgeladen ist, wird der zuletzt eingestellte Befehl ausgefürt.
Folgende Befehle gibt es für die Abschussvorrichtung:
setLaunchProjectileCommand
- die KanonesetLaunchBulletCommand
- das MaschinengewehrsetLaunchMissileCommand
- die LenkraketesetMissileTarget
setzen)
command
- - Richtung, in die geschossen werden soll (absolut)protected final void setLaunchMissileCommand(Angle command)
Ist schon ein -noch nicht ausgeführter- Feuerbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Kanone. Sobald sie
nachgeladen ist, wird der zuletzt eingestellte Befehl ausgefürt.
Folgende Befehle gibt es für die Abschussvorrichtung:
setLaunchProjectileCommand
- die KanonesetLaunchBulletCommand
- das MaschinengewehrsetLaunchMissileCommand
- die LenkraketesetMissileTarget
setzen)
command
- - Richtung, in die geschossen werden soll (absolut)protected final void setDropMineCommand(boolean isToBeLayed)
Ist schon ein -noch nicht ausgeführter- Abwurfbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Abwurfvorrichtung.
Sobald sie nachgeladen ist, wird der zuletzt eingestellte
Befehl ausgefürt.
Folgende Befehle gibt es für die Abwurfvorrichtung:
setDropMineCommand
- Mine legen setDropTankTrapCommand
- Panzersperre legen
isToBeLayed
- protected final void setDropTankTrapCommand(boolean isToBeLayed)
Ist schon ein -noch nicht ausgeführter- Abwurfbefehl vorhanden,
dann wird dieser überschrieben.
Dies hat keinen Einfluss auf den Nachladevorgang der Abwurfvorrichtung.
Sobald sie nachgeladen ist, wird der zuletzt eingestellte
Befehl ausgefürt.
Folgende Befehle gibt es für die Abwurfvorrichtung:
setDropMineCommand
- Mine legen setDropTankTrapCommand
- Panzersperre legen
isToBeLayed
- protected final void setMissileTarget(Vector targetPosition)
jrobots.simulation.simulationObjects.Pilot
Hinweis: Initial hat eine Lenkrakete kein Ziel (wird also nirgends einschlagen). Erst, wenn ihr mit dieser Routine ein Ziel übergeben wird, ist sie "scharf" (das kann unmittelbar im selben Befehlszyklus sein).
Eine solche Rakete kann beliebig oft umprogrammiert werden, bis sie nahe des Ziels einschlägt oder ihr Treibstoffvorrat erschöpft ist und sie wirkungslos vom Himmel fällt.
setMissileTarget
in class jrobots.simulation.simulationObjects.Pilot
targetPosition
- - zweidimensionaler Positionsvektor des Zielsprotected final void setDebugText(java.lang.String text)
setDebugText
in class jrobots.simulation.simulationObjects.Pilot
text
- anzuzeigender Textprotected final void setDebugLines(Vector[] points)
Alle Debug-Linien sind jeweils nur in dem Frame sichtbar, in dem sie hinzugefügt wurden. Für eine längere Anzeige müssen die Linien also in jedem Frame neu deklariert werden.
setDebugLines
in class jrobots.simulation.simulationObjects.Pilot
points
- Start- und Endpunkte der Linienprotected final void addDebugLine(Vector p1, Vector p2)
Alle Debug-Linien sind jeweils nur in dem Frame sichtbar, in dem sie hinzugefügt wurden. Für eine längere Anzeige müssen die Linien also in jedem Frame neu deklariert werden.
addDebugLine
in class jrobots.simulation.simulationObjects.Pilot
p1
- Startpunkt der Liniep2
- Endpunkt der Linieprotected final void addDebugCrosshair(Vector position)
Alle Debug-Linien sind jeweils nur in dem Frame sichtbar, in dem sie hinzugefügt wurden. Für eine längere Anzeige müssen die Linien also in jedem Frame neu deklariert werden.
addDebugCrosshair
in class jrobots.simulation.simulationObjects.Pilot
position
- die Position des Kreuzesprotected final void addDebugArrow(Vector start, Vector end)
Alle Debug-Linien sind jeweils nur in dem Frame sichtbar, in dem sie hinzugefügt wurden. Für eine längere Anzeige müssen die Linien also in jedem Frame neu deklariert werden.
addDebugArrow
in class jrobots.simulation.simulationObjects.Pilot
start
- Startpunkt des Pfeilsend
- Endpunkt des Pfeils (hier ist der Pfeilkopf)protected final void addDebugLine(float x1, float y1, float x2, float y2)
addDebugLine
in class jrobots.simulation.simulationObjects.Pilot
protected final void setNameColor(java.awt.Color newNameColor)
setNameColor
in class jrobots.simulation.simulationObjects.Pilot
newNameColor
- protected final void setTurretColor(java.awt.Color newColor)
setTurretColor
in class jrobots.simulation.simulationObjects.Pilot
newColor
- protected final void setBodyColor(java.awt.Color newColor)
setBodyColor
in class jrobots.simulation.simulationObjects.Pilot
newColor
-
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |