|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IBasicRobotPeer
The basic robot peer for all robot types.
NOTE: This is private interface. You should build any external component (or robot) based on it's current methods because it will change in the future.
A robot peer is the object that deals with game mechanics and rules, and makes sure your robot abides by them.
IStandardRobotPeer
,
IAdvancedRobotPeer
,
ITeamRobotPeer
,
IJuniorRobotPeer
Method Summary | |
---|---|
void |
execute()
Executes any pending actions, or continues executing actions that are in process. |
Bullet |
fire(double power)
Immediately fires a bullet. |
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 |
getBodyHeading()
Returns the direction that the robot's body is facing, in radians. |
double |
getBodyTurnRemaining()
Returns the angle remaining in the robot's turn, in radians. |
void |
getCall()
This call must be made from a robot call to inform the game that the robot made a get* call like e.g. |
double |
getDistanceRemaining()
Returns the distance remaining in the robot's current move 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 radians. |
double |
getGunHeat()
Returns the current heat of the gun. |
double |
getGunTurnRemaining()
Returns the angle remaining in the gun's turn, in radians. |
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. |
double |
getRadarHeading()
Returns the direction that the robot's radar is facing, in radians. |
double |
getRadarTurnRemaining()
Returns the angle remaining in the radar's turn, in radians. |
int |
getRoundNum()
Returns the number of the current round (0 to getNumRounds() - 1)
in 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 |
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 |
move(double distance)
Immediately moves your robot forward or backward by distance measured in pixels. |
void |
rescan()
Rescan for other robots. |
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 |
setCall()
This call must be made from a robot call to inform the game that the robot made a set* call like e.g. |
void |
setDebugProperty(String key,
String value)
Sets the debug property with the specified key to the specified value. |
Bullet |
setFire(double power)
Sets the gun to fire a bullet when the next execution takes place. |
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 |
turnBody(double radians)
Immediately turns the robot's body to the right or left by radians. |
void |
turnGun(double radians)
Immediately turns the robot's gun to the right or left by radians. |
Method Detail |
---|
String getName()
long getTime()
double getEnergy()
double getX()
getY()
double getY()
getX()
double getVelocity()
Rules.MAX_VELOCITY
(8 pixels / turn).
Rules.MAX_VELOCITY
double getBodyHeading()
getGunHeading()
,
getRadarHeading()
double getGunHeading()
getBodyHeading()
,
getRadarHeading()
double getRadarHeading()
getBodyHeading()
,
getGunHeading()
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()
,
setFire(double)
double getBattleFieldWidth()
double getBattleFieldHeight()
int getOthers()
int getNumRounds()
getRoundNum()
int getRoundNum()
getNumRounds()
- 1)
in the battle.
getNumRounds()
double getGunCoolingRate()
getGunHeat()
,
setFire(double)
double getDistanceRemaining()
getBodyTurnRemaining()
,
getGunTurnRemaining()
,
getRadarTurnRemaining()
double getBodyTurnRemaining()
getDistanceRemaining()
,
getGunTurnRemaining()
,
getRadarTurnRemaining()
double getGunTurnRemaining()
getDistanceRemaining()
,
getBodyTurnRemaining()
,
getRadarTurnRemaining()
double getRadarTurnRemaining()
getDistanceRemaining()
,
getBodyTurnRemaining()
,
getGunTurnRemaining()
void execute()
setMove(double)
,
setFire(double)
, setTurnBody(double)
etc.
Otherwise, these calls will never get executed.
In this example the robot will move while turning:
setTurnBody(90); setMove(100); execute(); while (getDistanceRemaining() > 0 && getTurnRemaining() > 0) { execute(); }
void move(double distance)
// Move the robot 100 pixels forward ahead(100); // Afterwards, move the robot 50 pixels backward ahead(-50);
distance
- the distance to move measured in pixels.
If distance
> 0 the robot is set to move forward.
If distance
< 0 the robot is set to move backward.
If distance
= 0 the robot will not move anywhere, but just
finish its turn.IBasicEvents.onHitWall(robocode.HitWallEvent)
,
IBasicEvents.onHitRobot(robocode.HitRobotEvent)
void turnBody(double radians)
// Turn the robot's body 180 degrees to the right turnBody(Math.PI); // Afterwards, turn the robot's body 90 degrees to the left turnBody(-Math.PI / 2);
radians
- the amount of radians to turn the robot's body.
If radians
> 0 the robot's body is set to turn right.
If radians
< 0 the robot's body is set to turn left.
If radians
= 0 the robot's body is set to stop turning.turnGun(double)
,
turnRadar(double)
,
move(double)
void turnGun(double radians)
// Turn the robot's gun 180 degrees to the right turnGun(Math.PI); // Afterwards, turn the robot's gun 90 degrees to the left turnGun(-Math.PI / 2);
radians
- the amount of radians to turn the robot's gun.
If radians
> 0 the robot's gun is set to turn right.
If radians
< 0 the robot's gun is set to turn left.
If radians
= 0 the robot's gun is set to stop turning.turnBody(double)
,
turnRadar(double)
,
move(double)
Bullet 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) { Bullet bullet = fire(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.setFire(double)
,
Bullet
,
getGunHeat()
,
getGunCoolingRate()
,
onBulletHit(BulletHitEvent)
,
onBulletHitBullet(BulletHitBulletEvent)
,
onBulletMissed(BulletMissedEvent)
Bullet setFire(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:
Bullet bullet = null; // Fire a bullet with maximum power if the gun is ready if (getGunHeat() == 0) { bullet = setFireBullet(Rules.MAX_BULLET_POWER); } ... execute(); ... // 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)
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 colorsetGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
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 colorsetBodyColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
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 colorsetBodyColor(Color)
,
setGunColor(Color)
,
setBulletColor(Color)
,
setScanColor(Color)
,
Color
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 colorsetBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setScanColor(Color)
,
Color
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 colorsetBodyColor(Color)
,
setGunColor(Color)
,
setRadarColor(Color)
,
setBulletColor(Color)
,
Color
void getCall()
get*
call like e.g. getX()
or
getVelocity()
.
This method is used by the game to determine if the robot is inactive or
not. Note: You should only make this call once in a get*
method!
setCall()
void setCall()
set*
call like e.g. setFire(double)
or setBodyColor(Color)
.
This method is used by the game to determine if the robot is inactive or
not. Note: You should only make this call once in a set*
method!
getCall()
Graphics2D getGraphics()
IPaintEvents.onPaint(Graphics2D)
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.void rescan()
onScannedRobot(ScannedRobotEvent)
to be called if you see a robot.
There are 2 reasons to call rescan()
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
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |