|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectrobocode._RobotBase
robocode._Robot
robocode.Robot
public class Robot
The basic robot class that you will extend to create your own robots.
Please note the following standards will be used:
heading - absolute angle in degrees with 0 facing up the screen,
positive clockwise. 0 <= heading < 360.
bearing - relative angle to some object from your robot's heading,
positive clockwise. -180 < bearing <= 180
All coordinates are expressed as (x,y).
All coordinates are positive.
The origin (0,0) is at the bottom left of the screen.
Positive x is right.
Positive y is up.
JuniorRobot
,
AdvancedRobot
,
TeamRobot
,
Droid
Field Summary |
---|
Fields inherited from class robocode._RobotBase |
---|
out |
Constructor Summary | |
---|---|
Robot()
Constructs a new robot. |
Method Summary | |
---|---|
void |
ahead(double distance)
Immediately moves your robot ahead (forward) by distance measured in pixels. |
void |
back(double distance)
Immediately moves your robot backward by distance measured in pixels. |
void |
doNothing()
Do nothing this turn, meaning that the robot will skip it's turn. |
void |
fire(double power)
Immediately fires a bullet. |
Bullet |
fireBullet(double power)
Immediately fires a bullet. |
IBasicEvents |
getBasicEventListener()
This method is called by the game to notify this robot about basic robot event. |
double |
getBattleFieldHeight()
Returns the height of the current battlefield measured in pixels. |
double |
getBattleFieldWidth()
Returns the width of the current battlefield measured in pixels. |
double |
getEnergy()
Returns the robot's current energy. |
Graphics2D |
getGraphics()
Returns a graphics context used for painting graphical items for the robot. |
double |
getGunCoolingRate()
Returns the rate at which the gun will cool down, i.e. the amount of heat the gun heat will drop per turn. |
double |
getGunHeading()
Returns the direction that the robot's gun is facing, in degrees. |
double |
getGunHeat()
Returns the current heat of the gun. |
double |
getHeading()
Returns the direction that the robot's body is facing, in degrees. |
double |
getHeight()
Returns the height of the robot measured in pixels. |
IInteractiveEvents |
getInteractiveEventListener()
This method is called by the game to notify this robot about interactive events, i.e. keyboard and mouse events. |
String |
getName()
Returns the robot's name. |
int |
getNumRounds()
Returns the number of rounds in the current battle. |
int |
getOthers()
Returns how many opponents that are left in the current round. |
IPaintEvents |
getPaintEventListener()
This method is called by the game to notify this robot about painting events. |
double |
getRadarHeading()
Returns the direction that the robot's radar is facing, in degrees. |
Runnable |
getRobotRunnable()
This method is called by the game to invoke the run() method of your robot, where the program
of your robot is implemented. |
int |
getRoundNum()
Returns the current round number (0 to getNumRounds() - 1) of
the battle. |
long |
getTime()
Returns the game time of the current round, where the time is equal to the current turn in the round. |
double |
getVelocity()
Returns the velocity of the robot measured in pixels/turn. |
double |
getWidth()
Returns the width of the robot measured in pixels. |
double |
getX()
Returns the X position of the robot. (0,0) is at the bottom left of the battlefield. |
double |
getY()
Returns the Y position of the robot. (0,0) is at the bottom left of the battlefield. |
void |
onBattleEnded(BattleEndedEvent event)
This method is called after the end of the battle, even when the battle is aborted. |
void |
onBulletHit(BulletHitEvent event)
This method is called when one of your bullets hits another robot. |
void |
onBulletHitBullet(BulletHitBulletEvent event)
This method is called when one of your bullets hits another bullet. |
void |
onBulletMissed(BulletMissedEvent event)
This method is called when one of your bullets misses, i.e. hits a wall. |
void |
onDeath(DeathEvent event)
This method is called if your robot dies. |
void |
onHitByBullet(HitByBulletEvent event)
This method is called when your robot is hit by a bullet. |
void |
onHitRobot(HitRobotEvent event)
This method is called when your robot collides with another robot. |
void |
onHitWall(HitWallEvent event)
This method is called when your robot collides with a wall. |
void |
onKeyPressed(KeyEvent e)
This method is called when a key has been pressed. |
void |
onKeyReleased(KeyEvent e)
This method is called when a key has been released. |
void |
onKeyTyped(KeyEvent e)
This method is called when a key has been typed (pressed and released). |
void |
onMouseClicked(MouseEvent e)
This method is called when a mouse button has been clicked (pressed and released). |
void |
onMouseDragged(MouseEvent e)
This method is called when a mouse button has been pressed and then dragged. |
void |
onMouseEntered(MouseEvent e)
This method is called when the mouse has entered the battle view. |
void |
onMouseExited(MouseEvent e)
This method is called when the mouse has exited the battle view. |
void |
onMouseMoved(MouseEvent e)
This method is called when the mouse has been moved. |
void |
onMousePressed(MouseEvent e)
This method is called when a mouse button has been pressed. |
void |
onMouseReleased(MouseEvent e)
This method is called when a mouse button has been released. |
void |
onMouseWheelMoved(MouseWheelEvent e)
This method is called when the mouse wheel has been rotated. |
void |
onPaint(Graphics2D g)
This method is called every time the robot is painted. |
void |
onRobotDeath(RobotDeathEvent event)
This method is called when another robot dies. |
void |
onRoundEnded(RoundEndedEvent event)
This method is called after the end of a round. |
void |
onScannedRobot(ScannedRobotEvent event)
This method is called when your robot sees another robot, i.e. when the robot's radar scan "hits" another robot. |
void |
onStatus(StatusEvent e)
This method is called every turn in a battle round in order to provide the robot status as a complete snapshot of the robot's current state at that specific time. |
void |
onWin(WinEvent event)
This method is called if your robot wins a battle. |
void |
resume()
Immediately resumes the movement you stopped by stop() , if any. |
void |
run()
The main method in every robot. |
void |
scan()
Scans for other robots. |
void |
setAdjustGunForRobotTurn(boolean independent)
Sets the gun to turn independent from the robot's turn. |
void |
setAdjustRadarForGunTurn(boolean independent)
Sets the radar to turn independent from the gun's turn. |
void |
setAdjustRadarForRobotTurn(boolean independent)
Sets the radar to turn independent from the robot's turn. |
void |
setAllColors(Color color)
Sets all the robot's color to the same color in the same time, i.e. the color of the body, gun, radar, bullet, and scan arc. |
void |
setBodyColor(Color color)
Sets the color of the robot's body. |
void |
setBulletColor(Color color)
Sets the color of the robot's bullets. |
void |
setColors(Color bodyColor,
Color gunColor,
Color radarColor)
Sets the color of the robot's body, gun, and radar in the same time. |
void |
setColors(Color bodyColor,
Color gunColor,
Color radarColor,
Color bulletColor,
Color scanArcColor)
Sets the color of the robot's body, gun, radar, bullet, and scan arc in the same time. |
void |
setDebugProperty(String key,
String value)
Sets the debug property with the specified key to the specified value. |
void |
setGunColor(Color color)
Sets the color of the robot's gun. |
void |
setRadarColor(Color color)
Sets the color of the robot's radar. |
void |
setScanColor(Color color)
Sets the color of the robot's scan arc. |
void |
stop()
Immediately stops all movement, and saves it for a call to resume() . |
void |
stop(boolean overwrite)
Immediately stops all movement, and saves it for a call to resume() . |
void |
turnGunLeft(double degrees)
Immediately turns the robot's gun to the left by degrees. |
void |
turnGunRight(double degrees)
Immediately turns the robot's gun to the right by degrees. |
void |
turnLeft(double degrees)
Immediately turns the robot's body to the left by degrees. |
void |
turnRadarLeft(double degrees)
Immediately turns the robot's radar to the left by degrees. |
void |
turnRadarRight(double degrees)
Immediately turns the robot's radar to the right by degrees. |
void |
turnRight(double degrees)
Immediately turns the robot's body to the right by degrees. |
Methods inherited from class robocode._Robot |
---|
getBattleNum, getGunCharge, getGunImageName, getLife, getNumBattles, getRadarImageName, getRobotImageName, setGunImageName, setInterruptible, setRadarImageName, setRobotImageName |
Methods inherited from class robocode._RobotBase |
---|
finalize, setOut, setPeer |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface robocode.robotinterfaces.IBasicRobot |
---|
setOut, setPeer |
Constructor Detail |
---|
public Robot()
Method Detail |
---|
public final Runnable getRobotRunnable()
run()
method of your robot, where the program
of your robot is implemented.}
getRobotRunnable
in interface IBasicRobot
Runnable.run()
public final IBasicEvents getBasicEventListener()
IBasicEvents
listener.}
getBasicEventListener
in interface IBasicRobot
null
if this robot should
not receive the notifications.public final IInteractiveEvents getInteractiveEventListener()
IInteractiveEvents
listener.}
getInteractiveEventListener
in interface IInteractiveRobot
null
if this robot
should not receive the notifications.public final IPaintEvents getPaintEventListener()
IPaintEvents
listener.}
getPaintEventListener
in interface IPaintRobot
null
if this robot should
not receive the notifications.public void ahead(double distance)
// Move the robot 100 pixels forward ahead(100); // Afterwards, move the robot 50 pixels backward ahead(-50);
distance
- the distance to move ahead measured in pixels.
If this value is negative, the robot will move back instead of ahead.back(double)
,
onHitWall(HitWallEvent)
,
onHitRobot(HitRobotEvent)
public void back(double distance)
// Move the robot 100 pixels backward back(100); // Afterwards, move the robot 50 pixels forward back(-50);
distance
- the distance to move back measured in pixels.
If this value is negative, the robot will move ahead instead of back.ahead(double)
,
onHitWall(HitWallEvent)
,
onHitRobot(HitRobotEvent)
public double getBattleFieldWidth()
public double getBattleFieldHeight()
public double getHeading()
getGunHeading()
,
getRadarHeading()
public double getHeight()
getWidth()
public double getWidth()
getHeight()
public String getName()
public double getX()
getY()
public double getY()
getX()
public void run()
// A basic robot that moves around in a square public void run() { while (true) { ahead(100); turnRight(90); } }
run
in interface Runnable
public void turnLeft(double degrees)
// Turn the robot 180 degrees to the left turnLeft(180); // Afterwards, turn the robot 90 degrees to the right turnLeft(-90);
degrees
- the amount of degrees to turn the robot's body to the left.
If degrees
> 0 the robot will turn left.
If degrees
< 0 the robot will turn right.
If degrees
= 0 the robot will not turn, but execute.turnRight(double)
,
turnGunLeft(double)
,
turnGunRight(double)
,
turnRadarLeft(double)
,
turnRadarRight(double)
public void turnRight(double degrees)
// Turn the robot 180 degrees to the right turnRight(180); // Afterwards, turn the robot 90 degrees to the left turnRight(-90);
degrees
- the amount of degrees to turn the robot's body to the right.
If degrees
> 0 the robot will turn right.
If degrees
< 0 the robot will turn left.
If degrees
= 0 the robot will not turn, but execute.turnLeft(double)
,
turnGunLeft(double)
,
turnGunRight(double)
,
turnRadarLeft(double)
,
turnRadarRight(double)
public void doNothing()
public void fire(double power)
Rules.getBulletDamage(double)
for getting the damage that a
bullet with a specific bullet power will do.
The specified bullet power should be between
Rules.MIN_BULLET_POWER
and Rules.MAX_BULLET_POWER
.
Note that the gun cannot fire if the gun is overheated, meaning that
getGunHeat()
returns a value > 0.
A event is generated when the bullet hits a robot
(BulletHitEvent
), wall (BulletMissedEvent
), or another
bullet (BulletHitBulletEvent
).
Example:
// Fire a bullet with maximum power if the gun is ready if (getGunHeat() == 0) { fire(Rules.MAX_BULLET_POWER); }
power
- the amount of energy given to the bullet, and subtracted
from the robot's energy.fireBullet(double)
,
getGunHeat()
,
getGunCoolingRate()
,
onBulletHit(BulletHitEvent)
,
onBulletHitBullet(BulletHitBulletEvent)
,
onBulletMissed(BulletMissedEvent)
public Bullet fireBullet(double power)
Rules.getBulletDamage(double)
for getting the damage that a
bullet with a specific bullet power will do.
The specified bullet power should be between
Rules.MIN_BULLET_POWER
and Rules.MAX_BULLET_POWER
.
Note that the gun cannot fire if the gun is overheated, meaning that
getGunHeat()
returns a value > 0.
A event is generated when the bullet hits a robot
(BulletHitEvent
), wall (BulletMissedEvent
), or another
bullet (BulletHitBulletEvent
).
Example:
// Fire a bullet with maximum power if the gun is ready if (getGunHeat() == 0) { Bullet bullet = fireBullet(Rules.MAX_BULLET_POWER); // Get the velocity of the bullet if (bullet != null) { double bulletVelocity = bullet.getVelocity(); } }
power
- the amount of energy given to the bullet, and subtracted
from the robot's energy.
Bullet
that contains information about the bullet if it
was actually fired, which can be used for tracking the bullet after it
has been fired. If the bullet was not fired, null
is returned.fire(double)
,
Bullet
,
getGunHeat()
,
getGunCoolingRate()
,
onBulletHit(BulletHitEvent)
,
onBulletHitBullet(BulletHitBulletEvent)
,
onBulletMissed(BulletMissedEvent)
public double getGunCoolingRate()
getGunHeat()
,
fire(double)
,
fireBullet(double)
public double getGunHeading()
getHeading()
,
getRadarHeading()
public double getGunHeat()
getGunCoolingRate()
, which is a battle setup.
Note that all guns are "hot" at the start of each round, where the gun
heat is 3.
getGunCoolingRate()
,
fire(double)
,
fireBullet(double)
public int getNumRounds()
getRoundNum()
public int getOthers()
public double getRadarHeading()
getHeading()
,
getGunHeading()
public int getRoundNum()
getNumRounds()
- 1) of
the battle.
getNumRounds()
public long getTime()
public double getVelocity()
Rules.MAX_VELOCITY
(8 pixels / turn).
Rules.MAX_VELOCITY
public void onBulletHit(BulletHitEvent event)
public void onBulletHit(BulletHitEvent event) { out.println("I hit " + event.getName() + "!"); }
onBulletHit
in interface IBasicEvents
event
- the bullet-hit event set by the gameBulletHitEvent
,
Event
public void onBulletHitBullet(BulletHitBulletEvent event)
public void onBulletHitBullet(BulletHitBulletEvent event) { out.println("I hit a bullet fired by " + event.getBullet().getName() + "!"); }
onBulletHitBullet
in interface IBasicEvents
event
- the bullet-hit-bullet event set by the gameBulletHitBulletEvent
,
Event
public void onBulletMissed(BulletMissedEvent event)
public void onBulletMissed(BulletMissedEvent event) { out.println("Drat, I missed."); }
onBulletMissed
in interface IBasicEvents
event
- the bullet-missed event set by the gameBulletMissedEvent
,
Event
public void onDeath(DeathEvent event)
onDeath
in interface IBasicEvents
event
- the death event set by the gameDeathEvent
,
WinEvent
,
RoundEndedEvent
,
BattleEndedEvent
,
Event
public void onHitByBullet(HitByBulletEvent event)
void onHitByBullet(HitByBulletEvent event) { out.println(event.getRobotName() + " hit me!"); }
onHitByBullet
in interface IBasicEvents
event
- the hit-by-bullet event set by the gameHitByBulletEvent
,
Event
public void onHitRobot(HitRobotEvent event)
void onHitRobot(HitRobotEvent event) { if (event.getBearing() > -90 && event.getBearing() <= 90) { back(100); } else { ahead(100); } } -- or perhaps, for a more advanced robot -- public void onHitRobot(HitRobotEvent event) { if (event.getBearing() > -90 && event.getBearing() <= 90) { setBack(100); } else { setAhead(100); } }The angle is relative to your robot's facing. So 0 is straight ahead of you. This event can be generated if another robot hits you, in which case
event.isMyFault()
will return
false
. In this case, you will not be automatically stopped by the
game -- but if you continue moving toward the robot you will hit it (and
generate another event). If you are moving away, then you won't hit it.
onHitRobot
in interface IBasicEvents
event
- the hit-robot event set by the gameHitRobotEvent
,
Event
public void onHitWall(HitWallEvent event)
turnRight
(event.getBearing())
will
point you perpendicular to the wall.
Example:
void onHitWall(HitWallEvent event) { out.println("Ouch, I hit a wall bearing " + event.getBearing() + " degrees."); }
onHitWall
in interface IBasicEvents
event
- the hit-wall event set by the gameHitWallEvent
,
Event
public void onRobotDeath(RobotDeathEvent event)
onRobotDeath
in interface IBasicEvents
event
- The robot-death event set by the gameRobotDeathEvent
,
Event
public void onScannedRobot(ScannedRobotEvent event)
Rules.RADAR_SCAN_RADIUS
(1200 pixels).
Also not that the bearing of the scanned robot is relative to your
robot's heading.
Example:
void onScannedRobot(ScannedRobotEvent event) { // Assuming radar and gun are aligned... if (event.getDistance() < 100) { fire(3); } else { fire(1); } }Note:
fire()
will fire directly at the robot.
fire()
would
hit. (i.e. you are spinning your gun around, but by the time you get the
event, your gun is 5 degrees past the robot).
onScannedRobot
in interface IBasicEvents
event
- the scanned-robot event set by the gameScannedRobotEvent
,
Event
,
Rules.RADAR_SCAN_RADIUS
public void onWin(WinEvent event)
onWin
in interface IBasicEvents
event
- the win event set by the gameDeathEvent
,
RoundEndedEvent
,
BattleEndedEvent
,
Event
public void onRoundEnded(RoundEndedEvent event)
public void onRoundEnded(RoundEndedEvent event) { out.println("The round has ended"); }
onRoundEnded
in interface IBasicEvents3
event
- the RoundEndedEvent event set by the gameRoundEndedEvent
,
IBasicEvents2.onBattleEnded(BattleEndedEvent)
,
WinEvent
,
DeathEvent
,
Event
public void onBattleEnded(BattleEndedEvent event)
public void onBattleEnded(BattleEndedEvent event) { out.println("The battle has ended"); }
onBattleEnded
in interface IBasicEvents2
event
- the BattleEndedEvent set by the gameBattleEndedEvent
,
IBasicEvents3.onRoundEnded(RoundEndedEvent)
,
WinEvent
,
DeathEvent
,
Event
public void scan()
onScannedRobot(ScannedRobotEvent)
to be called if you see a robot.
There are 2 reasons to call scan()
manually:
onScannedRobot
event. This is more
likely. If you are in onScannedRobot
and call scan()
,
and you still see a robot, then the system will interrupt your
onScannedRobot
event immediately and start it from the top.
onScannedRobot(ScannedRobotEvent)
,
ScannedRobotEvent
public void setAdjustGunForRobotTurn(boolean independent)
setAdjustGunForRobotTurn(true)
.
When this is set, the gun will turn independent from the robot's turn,
i.e. the gun will compensate for the robot's body turn.
Note: This method is additive until you reach the maximum the gun can
turn. The "adjust" is added to the amount you set for turning the robot,
then capped by the physics of the game. If you turn infinite, then the
adjust is ignored (and hence overridden).
Example, assuming both the robot and gun start out facing up (0 degrees):
// Set gun to turn with the robot's turn setAdjustGunForRobotTurn(false); // This is the default turnRight(90); // At this point, both the robot and gun are facing right (90 degrees) turnLeft(90); // Both are back to 0 degrees -- or -- // Set gun to turn independent from the robot's turn setAdjustGunForRobotTurn(true); turnRight(90); // At this point, the robot is facing right (90 degrees), but the gun is still facing up. turnLeft(90); // Both are back to 0 degrees.Note: The gun compensating this way does count as "turning the gun". See
setAdjustRadarForGunTurn(boolean)
for details.
independent
- true
if the gun must turn independent from the
robot's turn; false
if the gun must turn with the robot's turn.setAdjustRadarForGunTurn(boolean)
public void setAdjustRadarForRobotTurn(boolean independent)
setAdjustRadarForRobotTurn(true)
. When this is
set, the radar will turn independent from the robot's turn, i.e. the
radar will compensate for the robot's turn.
Note: This method is additive until you reach the maximum the radar can
turn. The "adjust" is added to the amount you set for turning the robot,
then capped by the physics of the game. If you turn infinite, then the
adjust is ignored (and hence overridden).
Example, assuming the robot, gun, and radar all start out facing up (0
degrees):
// Set radar to turn with the robots's turn setAdjustRadarForRobotTurn(false); // This is the default turnRight(90); // At this point, the body, gun, and radar are all facing right (90 degrees); -- or -- // Set radar to turn independent from the robot's turn setAdjustRadarForRobotTurn(true); turnRight(90); // At this point, the robot and gun are facing right (90 degrees), but the radar is still facing up.
independent
- true
if the radar must turn independent from
the robots's turn; false
if the radar must turn with the robot's
turn.setAdjustGunForRobotTurn(boolean)
,
setAdjustRadarForGunTurn(boolean)
public void setAdjustRadarForGunTurn(boolean independent)
setAdjustRadarForGunTurn(true)
. When this
is set, the radar will turn independent from the robot's turn, i.e. the
radar will compensate for the gun's turn.
Note: This method is additive until you reach the maximum the radar can
turn. The "adjust" is added to the amount you set for turning the gun,
then capped by the physics of the game. If you turn infinite, then the
adjust is ignored (and hence overridden).
Example, assuming both the gun and radar start out facing up (0 degrees):
// Set radar to turn with the gun's turn setAdjustRadarForGunTurn(false); // This is the default turnGunRight(90); // At this point, both the radar and gun are facing right (90 degrees); -- or -- // Set radar to turn independent from the gun's turn setAdjustRadarForGunTurn(true); turnGunRight(90); // At this point, the gun is facing right (90 degrees), but the radar is still facing up.Note: Calling
setAdjustRadarForGunTurn(boolean)
will
automatically call setAdjustRadarForRobotTurn(boolean)
with the
same value, unless you have already called it earlier. This behavior is
primarily for backward compatibility with older Robocode robots.
independent
- true
if the radar must turn independent from
the gun's turn; false
if the radar must turn with the gun's
turn.setAdjustRadarForRobotTurn(boolean)
,
setAdjustGunForRobotTurn(boolean)
public void setColors(Color bodyColor, Color gunColor, Color radarColor)
null
indicates the default (blue) color.
Example:
// Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setColors(null, Color.RED, new Color(150, 0, 150)); ... }
bodyColor
- the new body colorgunColor
- the new gun colorradarColor
- the new radar colorsetColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setColors(Color bodyColor, Color gunColor, Color radarColor, Color bulletColor, Color scanArcColor)
null
indicates the default (blue) color for the body, gun, radar, and scan
arc, but white for the bullet color.
Example:
// Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setColors(null, Color.RED, Color.GREEN, null, new Color(150, 0, 150)); ... }
bodyColor
- the new body colorgunColor
- the new gun colorradarColor
- the new radar colorbulletColor
- the new bullet colorscanArcColor
- the new scan arc colorsetColors(Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setAllColors(Color color)
null
indicates the default (blue) color for the body, gun, radar, and scan
arc, but white for the bullet color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setAllColors(Color.RED); ... }
color
- the new color for all the colors of the robotsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setBodyColor(Color color)
null
indicates the default (blue) color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setBodyColor(Color.BLACK); ... }
color
- the new body colorsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setGunColor(Color color)
null
indicates the default (blue) color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setGunColor(Color.RED); ... }
color
- the new gun colorsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setRadarColor(Color color)
null
indicates the default (blue) color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setRadarColor(Color.YELLOW); ... }
color
- the new radar colorsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
public void setBulletColor(Color color)
null
indicates the default white color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setBulletColor(Color.GREEN); ... }
color
- the new bullet colorsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setScanColor(Color)
,
Color
public void setScanColor(Color color)
null
indicates the default (blue) color.
Example: // Don't forget to import java.awt.Color at the top... import java.awt.Color; ... public void run() { setScanColor(Color.WHITE); ... }
color
- the new scan arc colorsetColors(Color, Color, Color)
,
setColors(Color, Color, Color, Color, Color)
,
setAllColors(Color)
,
setBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
Color
public void stop()
resume()
. If there is already movement saved from a previous
stop, this will have no effect.
This method is equivalent to #stop(false)
.
resume()
,
stop(boolean)
public void stop(boolean overwrite)
resume()
. If there is already movement saved from a previous
stop, you can overwrite it by calling stop(true)
.
overwrite
- If there is already movement saved from a previous stop,
you can overwrite it by calling stop(true)
.resume()
,
stop()
public void resume()
stop()
, if any.
This call executes immediately, and does not return until it is complete.
stop()
,
stop(boolean)
public void turnGunLeft(double degrees)
// Turn the robot's gun 180 degrees to the left turnGunLeft(180); // Afterwards, turn the robot's gun 90 degrees to the right turnGunLeft(-90);
degrees
- the amount of degrees to turn the robot's gun to the left.
If degrees
> 0 the robot's gun will turn left.
If degrees
< 0 the robot's gun will turn right.
If degrees
= 0 the robot's gun will not turn, but execute.turnGunRight(double)
,
turnLeft(double)
,
turnRight(double)
,
turnRadarLeft(double)
,
turnRadarRight(double)
,
setAdjustGunForRobotTurn(boolean)
public void turnGunRight(double degrees)
// Turn the robot's gun 180 degrees to the right turnGunRight(180); // Afterwards, turn the robot's gun 90 degrees to the left turnGunRight(-90);
degrees
- the amount of degrees to turn the robot's gun to the right.
If degrees
> 0 the robot's gun will turn right.
If degrees
< 0 the robot's gun will turn left.
If degrees
= 0 the robot's gun will not turn, but execute.turnGunLeft(double)
,
turnLeft(double)
,
turnRight(double)
,
turnRadarLeft(double)
,
turnRadarRight(double)
,
setAdjustGunForRobotTurn(boolean)
public void turnRadarLeft(double degrees)
// Turn the robot's radar 180 degrees to the left turnRadarLeft(180); // Afterwards, turn the robot's radar 90 degrees to the right turnRadarLeft(-90);
degrees
- the amount of degrees to turn the robot's radar to the left.
If degrees
> 0 the robot's radar will turn left.
If degrees
< 0 the robot's radar will turn right.
If degrees
= 0 the robot's radar will not turn, but execute.turnRadarRight(double)
,
turnLeft(double)
,
turnRight(double)
,
turnGunLeft(double)
,
turnGunRight(double)
,
setAdjustRadarForRobotTurn(boolean)
,
setAdjustRadarForGunTurn(boolean)
public void turnRadarRight(double degrees)
// Turn the robot's radar 180 degrees to the right turnRadarRight(180); // Afterwards, turn the robot's radar 90 degrees to the left turnRadarRight(-90);
degrees
- the amount of degrees to turn the robot's radar to the right.
If degrees
> 0 the robot's radar will turn right.
If degrees
< 0 the robot's radar will turn left.
If degrees
= 0 the robot's radar will not turn, but execute.turnRadarLeft(double)
,
turnLeft(double)
,
turnRight(double)
,
turnGunLeft(double)
,
turnGunRight(double)
,
setAdjustRadarForRobotTurn(boolean)
,
setAdjustRadarForGunTurn(boolean)
public double getEnergy()
public Graphics2D getGraphics()
onPaint(Graphics2D)
public void setDebugProperty(String key, String value)
key
- the name/key of the debug property.value
- the new value of the debug property, where null
or
the empty string is used for removing this debug property.public void onPaint(Graphics2D g)
onPaint
in interface IPaintEvents
g
- the graphics context to use for painting graphical items for the
robot.Graphics2D
public void onKeyPressed(KeyEvent e)
sample.Interactive
robot for an example of how to use
key events.
onKeyPressed
in interface IInteractiveEvents
e
- holds details about current eventKeyListener.keyPressed(KeyEvent)
,
IInteractiveEvents.onKeyReleased(KeyEvent)
,
IInteractiveEvents.onKeyTyped(KeyEvent)
public void onKeyReleased(KeyEvent e)
sample.Interactive
robot for an example of how to use
key events.
onKeyReleased
in interface IInteractiveEvents
e
- holds details about current eventKeyListener.keyReleased(KeyEvent)
,
IInteractiveEvents.onKeyPressed(KeyEvent)
,
IInteractiveEvents.onKeyTyped(KeyEvent)
public void onKeyTyped(KeyEvent e)
sample.Interactive
robot for an example of how to use
key events.
onKeyTyped
in interface IInteractiveEvents
e
- holds details about current eventKeyListener.keyTyped(KeyEvent)
,
IInteractiveEvents.onKeyPressed(KeyEvent)
,
IInteractiveEvents.onKeyReleased(KeyEvent)
public void onMouseClicked(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseClicked
in interface IInteractiveEvents
e
- holds details about current eventMouseListener.mouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseEntered(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseEntered
in interface IInteractiveEvents
e
- holds details about current eventMouseListener.mouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseExited(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseExited
in interface IInteractiveEvents
e
- holds details about current eventMouseListener.mouseExited(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMousePressed(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMousePressed
in interface IInteractiveEvents
e
- holds details about current eventMouseListener.mousePressed(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseReleased(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseReleased
in interface IInteractiveEvents
e
- holds details about current eventMouseListener.mouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseMoved(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseMoved
in interface IInteractiveEvents
e
- holds details about current eventMouseMotionListener.mouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseDragged(MouseEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseDragged
in interface IInteractiveEvents
e
- holds details about current eventMouseMotionListener.mouseDragged(MouseEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseWheelMoved(MouseWheelEvent)
public void onMouseWheelMoved(MouseWheelEvent e)
sample.Interactive
robot for an example of how to use
mouse events.
onMouseWheelMoved
in interface IInteractiveEvents
e
- holds details about current eventMouseWheelListener.mouseWheelMoved(MouseWheelEvent)
,
IInteractiveEvents.onMouseMoved(MouseEvent)
,
IInteractiveEvents.onMousePressed(MouseEvent)
,
IInteractiveEvents.onMouseReleased(MouseEvent)
,
IInteractiveEvents.onMouseClicked(MouseEvent)
,
IInteractiveEvents.onMouseEntered(MouseEvent)
,
IInteractiveEvents.onMouseExited(MouseEvent)
,
IInteractiveEvents.onMouseDragged(MouseEvent)
public void onStatus(StatusEvent e)
getTime()
and then
getHeading()
afterwards, as the time might change
after between the getTime()
and getHeading()
call.
onStatus
in interface IBasicEvents
e
- the event containing the robot status at the time it occurred.StatusEvent
,
Event
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |