public interface IStandardRobotPeer extends IBasicRobotPeer
Robot
,
AdvancedRobot
, and TeamRobot
.
A robot peer is the object that deals with game mechanics and rules, and makes sure your robot abides by them.
IBasicRobotPeer
,
IAdvancedRobotPeer
,
ITeamRobotPeer
,
IJuniorRobotPeer
Modifier and Type | Method and Description |
---|---|
void |
resume()
Immediately resumes the movement you stopped by
stop(boolean) , if
any. |
void |
setAdjustGunForBodyTurn(boolean adjust)
Sets the gun to adjust for the bot's turn, so the gun behaves like it is
turning independent of the bot's turn.
|
void |
setAdjustRadarForBodyTurn(boolean adjust)
Sets the radar to turn independent from the robot's turn.
|
void |
setAdjustRadarForGunTurn(boolean adjust)
Sets the radar to adjust for the gun's turn, so the radar behaves like it is
turning independent of the gun's turn.
|
void |
stop(boolean overwrite)
Immediately stops all movement, and saves it for a call to
resume() . |
void |
turnRadar(double radians)
Immediately turns the robot's radar to the right or left by radians.
|
execute, fire, getBattleFieldHeight, getBattleFieldWidth, getBodyHeading, getBodyTurnRemaining, getCall, getDistanceRemaining, getEnergy, getGraphics, getGunCoolingRate, getGunHeading, getGunHeat, getGunTurnRemaining, getName, getNumRounds, getNumSentries, getOthers, getRadarHeading, getRadarTurnRemaining, getRoundNum, getSentryBorderSize, getTime, getVelocity, getX, getY, move, rescan, setBodyColor, setBulletColor, setCall, setDebugProperty, setFire, setGunColor, setRadarColor, setScanColor, turnBody, turnGun
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()
void resume()
stop(boolean)
, if
any.
This call executes immediately, and does not return until it is complete.
stop(boolean)
void turnRadar(double radians)
Note that both positive and negative values can be given as input, where positive values means that the robot's radar is set to turn right, and negative values means that the robot's radar is set to turn left. If 0 is given as input, the robot's radar will stop turning.
Example:
// Turn the robot's radar 180 degrees to the right turnRadar(Math.PI); // Afterwards, turn the robot's radar 90 degrees to the left turnRadar(-Math.PI / 2);
radians
- the amount of radians to turn the robot's radar. If
radians
> 0 the robot's radar is set to turn right. If
radians
< 0 the robot's radar is set to turn left. If
radians
= 0 the robot's radar is set to stop turning.IBasicRobotPeer.turnBody(double)
,
IBasicRobotPeer.turnGun(double)
,
IBasicRobotPeer.move(double)
void setAdjustGunForBodyTurn(boolean adjust)
Ok, so this needs some explanation: The gun is mounted on the bot's body. So,
normally, if the bot turns 90 degrees to the right, then the gun will turn
with it as it is mounted on top of the bot's body. To compensate for this,
you can call setAdjustGunForBodyTurn(true)
. When this is set, the gun
will turn independent from the bot's 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 bot, 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 setAdjustGunForBodyTurn(false); // This is the default turnBodyRight(Math.PI / 2); // At this point, both the robot and gun are facing right (90 degrees) turnBodyLeft(Math.PI / 2); // Both are back to 0 degrees -- or -- // Set gun to turn independent from the robot's turn setAdjustGunForBodyTurn(true); turnBodyRight(Math.PI / 2); // At this point, the robot is facing right (90 degrees), but the gun is still facing up. turnBodyLeft(Math.PI / 2); // Both are back to 0 degrees.
Note: The gun compensating this way does count as "turning the gun".
adjust
- true
if the gun must adjust for the bot's turn;
false
if the gun must turn with the bot's turn.setAdjustRadarForGunTurn(boolean)
void setAdjustRadarForGunTurn(boolean adjust)
Ok, so this needs some explanation: The radar is mounted on the bot's gun.
So, normally, if the gun turns 90 degrees to the right, then the radar will
turn with it as it is mounted on top of the gun. To compensate for this, you
can call setAdjustRadarForGunTurn(true)
. When this is set, the radar
will turn independent from 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(Math.PI / 2); // 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(Math.PI / 2); // At this point, the gun is facing right (90 degrees), but the radar is still facing up.
Note: The radar compensating this way does count as "turning the radar".
Note: Calling setAdjustRadarForGunTurn(boolean)
will automatically
call setAdjustRadarForBodyTurn(boolean)
with the same value, unless
you have already called it earlier. This behavior is primarily for backward
compatibility with older Robocode robots.
adjust
- true
if the radar must adjust for the gun's turn;
false
if the radar must turn with the gun's turn.setAdjustGunForBodyTurn(boolean)
void setAdjustRadarForBodyTurn(boolean adjust)
Ok, so this needs some explanation: The radar is mounted on the gun, and the
gun is mounted on the robot's body. So, normally, if the robot turns 90
degrees to the right, the gun turns, as does the radar. Hence, if the robot
turns 90 degrees to the right, then the gun and radar will turn with it as
the radar is mounted on top of the gun. To compensate for this, you can call
setAdjustRadarForBodyTurn(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 gun, 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 setAdjustRadarForBodyTurn(false); // This is the default turnRight(Math.PI / 2); // 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 setAdjustRadarForBodyTurn(true); turnRight(Math.PI / 2); // At this point, the robot and gun are facing right (90 degrees), but the radar is still facing up.
adjust
- true
if the radar must adjust for the robot's turn;
false
if the radar must turn with the robot's turn.setAdjustGunForBodyTurn(boolean)
,
setAdjustRadarForGunTurn(boolean)
Copyright © 2021 Robocode. All Rights Reserved.