robocode
クラス Robot

java.lang.Object
  |
  +--robocode._Robot
        |
        +--robocode.Robot
実装されているすべてのインターフェース:
Runnable
直接の既知のサブクラス:
_AdvancedRobot

public class Robot
_Robotを継承します。
Runnableを実装します。

独自のロボットを作成するために拡張できる、 基礎となるロボット・クラスです。

以下の標準が使用されることに注意してください。
向き、進行方向 (heading) - 360 度形式の絶対角度で、 0 度は画面の上方向を示し、 時計回りに角度が増加します (0 <= heading < 360)。
方位角 (bearing) - 自分のロボットの向きを基準とする、 対象物の相対角度。 角度は時計回りに増加します (-180 < bearing <= 180)。
すべての座標は (x,y) 形式で表されます。
すべての座標は正の数値です。
原点 (0,0) は、画面の左下隅です。
x は右方向に増加します。
y は上方に増加します。

関連項目:
robocode.alphaworks.ibm.comはじめてのロボットを作成する

フィールドの概要
 PrintStream out
           ロボットが出力に使用する出力ストリーム。
 
コンストラクターの要約
Robot()
           
 
メソッドの要約
 void ahead(double distance)
           ロボットを前方に移動させます。
 void back(double distance)
           ロボットを後方に移動させます。
 void doNothing()
           このロボットの今回の順番では、何も動作を行いません。
 void finalize()
           システムによって呼び出され、ロボットのクリーンアップ (終結処理) を行います。
 void fire(double power)
           弾丸を発射します。
 Bullet fireBullet(double power)
           弾丸を発射します。
 double getBattleFieldHeight()
           現在のバトルフィールドの高さを取得します。
 double getBattleFieldWidth()
           現在のバトルフィールドの幅を取得します。
 double getEnergy()
           ロボットの現在のエネルギーを戻します。
 double getGunCoolingRate()
           大砲の冷却速度を戻します。
 double getGunHeading()
           大砲の向きを 360 度形式で戻します。
 double getGunHeat()
           大砲の現在の熱さを戻します。
 double getHeading()
           ロボットの現在の向きを 360 度形式で戻します。
 double getHeight()
           ロボットの高さを戻します。
 String getName()
           ロボットの名前を戻します。
 int getNumRounds()
           現在のバトルのラウンド数を戻します。
 int getOthers()
           敵ロボットの残り台数を戻します。
 double getRadarHeading()
           レーダーの向きを 360 度形式で戻します。
 int getRoundNum()
           現在のラウンドが、 バトルの第何ラウンドかを戻します (1〜getNumRounds() の範囲)
 long getTime()
           現在のゲーム時刻を戻します。
注: 1 つのバトルは複数のラウンドからなり、 各ラウンドの始めに時刻が 0 にリセットされます。
 double getVelocity()
           このロボットの移動速度を戻します。
 double getWidth()
           ロボットの幅を戻します。
 double getX()
           ロボットの X 座標の位置を戻します。
 double getY()
           ロボットの Y 座標の位置を戻します。
 void onBulletHit(BulletHitEvent event)
           このロボットが発射したいずれかの弾丸が他のロボットに当たったとき、 このメソッドが呼び出されます。
 void onBulletHitBullet(BulletHitBulletEvent event)
           このロボットが発射したいずれかの弾丸が他の弾丸に当たったとき、 このメソッドが呼び出されます。
 void onBulletMissed(BulletMissedEvent event)
           このロボットが発射したいずれかの弾丸がはずれたとき (壁に当たったとき)、 このメソッドが呼び出されます。
 void onDeath(DeathEvent event)
           このメソッドは、ロボットが死んだときに呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。
 void onHitByBullet(HitByBulletEvent event)
           このロボットに弾丸が命中したとき、このメソッドが呼び出されます。
 void onHitRobot(HitRobotEvent event)
           このロボットが他のいずれかのロボットと衝突したとき、 このメソッドが呼び出されます。
 void onHitWall(HitWallEvent event)
           このロボットが壁に衝突したとき、このメソッドが呼び出されます。
 void onRobotDeath(RobotDeathEvent event)
           このメソッドは、 他のいずれかのロボットが死んだときに呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。
 void onScannedRobot(ScannedRobotEvent event)
           このロボットが他のロボットを発見したとき、 このメソッドが呼び出されます。
 void onWin(WinEvent event)
           このロボットがバトルに勝ったとき、このメソッドが呼び出されます。
 void resume()
           stop() による停止中の動作があれば、その動作を再開します。
 void run()
           各ロボットのメイン・メソッド。
 void scan()
           他のロボットを探します。
 void setAdjustGunForRobotTurn(boolean newAdjustGunForRobotTurn)
           ロボットが回転するときに、 大砲が自動的に逆方向に回転するように設定します。
 void setAdjustRadarForGunTurn(boolean newAdjustRadarForGunTurn)
           大砲が回転するときに、 レーダーが自動的に逆方向に回転するように設定します。
 void setAdjustRadarForRobotTurn(boolean newAdjustRadarForRobotTurn)
           ロボットが回転するときに、 レーダーが自動的に逆方向に回転するように設定します。
 void setColors(Color robotColor, Color gunColor, Color radarColor)
           このメソッドは、ロボットの色を設定するために呼び出します。
 void stop()
           動作をすべて停止し、 後で resume() 呼び出しを使って再開できるよう、保存します。
 void stop(boolean overwrite)
           動作をすべて停止し、 後で resume() 呼び出しを使って再開できるよう、保存します。
 void turnGunLeft(double degrees)
           ロボットの大砲を回転させます。
 void turnGunRight(double degrees)
           ロボットの大砲を回転させます。
 void turnLeft(double degrees)
           ロボットを回転させます。
 void turnRadarLeft(double degrees)
           ロボットのレーダーを回転させます。
 void turnRadarRight(double degrees)
           ロボットのレーダーを回転させます。
 void turnRight(double degrees)
           ロボットを回転させます。
 
クラス robocode._Robot から継承されたメソッド
getBattleNumgetGunChargegetGunImageNamegetLifegetNumBattlesgetRadarImageNamegetRobotImageNamesetGunImageNamesetInterruptiblesetPeersetRadarImageNamesetRobotImageName
 
クラス java.lang.Object から継承されたメソッド
equalsgetClasshashCodenotifynotifyAlltoStringwaitwaitwait
 

フィールドの詳細

out

public PrintStream out
ロボットが出力に使用する出力ストリーム。 バトルの右側のボタンをクリックすると、これを表示できます。

例 public void onHitRobot(HitRobotEvent e) { out.println("I hit a robot! My energy: " + getEnergy() + " his energy: " + e.getEnergy()); } System.out もこのストリームに出力します。

コンストラクターの詳細

Robot

public Robot()
メソッドの詳細

ahead

public void ahead(double distance)
ロボットを前方に移動させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 ロボットが壁に衝突した場合、移動は完了します。 ロボットが他のロボットに衝突した場合、 このロボットが相手のロボットの方に向かっていたのであれば、 移動は完了します。

   ahead(50);
 

パラメーター:
distance - 前方への移動距離
関連項目:
onHitWall(robocode.HitWallEvent)onHitRobot(robocode.HitRobotEvent)

back

public void back(double distance)
ロボットを後方に移動させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 ロボットが壁に衝突した場合、移動は完了します。 ロボットが他のロボットに衝突した場合、 このロボットが相手のロボットの方に向かっていたのであれば、 移動は完了します。

   back(150);
 

パラメーター:
distance - 後方への移動距離
関連項目:
onHitWall(robocode.HitWallEvent)onHitRobot(robocode.HitRobotEvent)

getBattleFieldHeight

public double getBattleFieldHeight()
現在のバトルフィールドの高さを取得します。

戻り値:
バトルフィールドの高さ

getBattleFieldWidth

public double getBattleFieldWidth()
現在のバトルフィールドの幅を取得します。

戻り値:
バトルフィールドの幅

getHeading

public double getHeading()
ロボットの現在の向きを、360 度形式で戻します。 戻り値は 0 から 360 までの範囲です。

戻り値:
ロボットの現在の向き (360 度形式)

getHeight

public double getHeight()
ロボットの高さを戻します。

戻り値:
ロボットの高さ

getName

public String getName()
ロボットの名前を戻します。

戻り値:
ロボットの名前

getWidth

public double getWidth()
ロボットの幅を戻します。

戻り値:
ロボットの幅

getX

public double getX()
ロボットの X 座標の位置を戻します。 (0,0) は、バトルフィールドの左下隅です。

戻り値:
ロボットの X 座標

getY

public double getY()
ロボットの Y 座標の位置を戻します。 (0,0) は、バトルフィールドの左下隅です。

戻り値:
ロボットの Y 座標

run

public void run()
各ロボットのメイン・メソッド。 これをオーバーライドすることによって、 ロボットの基本的な動作を設定します。

 // 正方形を描きながら移動し続ける基本的なロボット
 public void run() {
   while (true) {
      ahead(100);
      turnRight(90);
   }
 

指定される場所:
インターフェース Runnable 内の run

turnLeft

public void turnLeft(double degrees)
ロボットを回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 なお、大砲とレーダーはロボットに取り付けられているため、 このときに同じ角度だけ回転することに注意してください。

   turnLeft(90);
 


turnRight

public void turnRight(double degrees)
ロボットを回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 なお、大砲とレーダーはロボットに取り付けられているため、 このときに同じ角度だけ回転することに注意してください。

   turnRight(90);
 


doNothing

public void doNothing()
このロボットの今回の順番では、何も動作を行いません。 この呼び出しはただちに実行されます。


finalize

public final void finalize()
システムによって呼び出され、ロボットのクリーンアップ (終結処理) を行います。 ユーザーはこのメソッドをオーバーライドしないでください。

オーバーライドされるメソッド:
クラス Object 内の finalize

fire

public void fire(double power)
弾丸を発射します。 パワーの有効範囲は .1 から 3 までです。 弾丸は、大砲が向いている方向に飛んで行きます。 弾丸が他のロボットに当たると、パワーの 4 倍のダメージを与えます。 さらにパワーが 1 より大きい場合、 2 * (パワー - 1) のダメージを余分に与えます。 命中させた方のロボットは、パワーの 3 倍を獲得します。 弾丸がロボット、壁、または他の弾丸に当たると、 それぞれのイベントが作成されます。 この呼び出しはただちに実行されます。

パラメーター:
power - 弾丸に与えられる (ロボットが失う) エネルギー。
関連項目:
fireBullet(double)onBulletHit(robocode.BulletHitEvent)onBulletHitBullet(robocode.BulletHitBulletEvent)onBulletMissed(robocode.BulletMissedEvent)

fireBullet

public Bullet fireBullet(double power)
弾丸を発射します。 この呼び出しは fire(double) と同じですが、 発射された Bullet オブジェクトを戻します。 この呼び出しはただちに実行されます。

関連項目:
fire(double)

getGunCoolingRate

public double getGunCoolingRate()
大砲の冷却速度を戻します。

戻り値:
大砲の冷却速度
関連項目:
getGunHeat()

getGunHeading

public double getGunHeading()
大砲の向きを 360 度形式で戻します。 値の範囲は 0 から 360 までです (0 は画面で上方向を向いていることを意味します)。

戻り値:
大砲の向き

getGunHeat

public double getGunHeat()
大砲の現在の熱さを戻します。 この値が 0 になるまでは、弾丸を発射できません。 (発射メソッドの呼び出しは成功しますが、 getGunHeat() == 0 になるまでは実際に発射されません。)

戻り値:
大砲の現在の熱さ

getNumRounds

public int getNumRounds()
現在のバトルのラウンド数を戻します。

戻り値:
現在のバトルのラウンド数

getOthers

public int getOthers()
残っている敵の数を戻します。

戻り値:
残っている敵の数

getRadarHeading

public double getRadarHeading()
レーダーの向きを 360 度形式で戻します。 値の範囲は 0 から 360 までです (0 は画面で上方向を向いていることを意味します)。

戻り値:
レーダーの向き

getRoundNum

public int getRoundNum()
現在のラウンドが、 バトルの第何ラウンドかを戻します (1〜getNumRounds() の範囲)

戻り値:
バトルにおける現在のラウンド番号

getTime

public long getTime()
現在のゲーム時刻を戻します。
注: 1 つのバトルは複数のラウンドからなり、 各ラウンドの始めに時刻が 0 にリセットされます。 getTime() は、このラウンドで表示されたフレームの数に等しくなります。

戻り値:
現在のゲーム時刻

getVelocity

public double getVelocity()
ロボットの移動速度を戻します。

戻り値:
ロボットの移動速度

onBulletHit

public void onBulletHit(BulletHitEvent event)
ロボットから発射されたいずれかの弾丸が他のロボットに当たったとき、 このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

   public void onBulletHit(BulletHitEvent event) {
     out.println("I hit " + event.getName() + "!");
   }
 

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
BulletHitEventEvent

onBulletHitBullet

public void onBulletHitBullet(BulletHitBulletEvent event)
ロボットから発射されたいずれかの弾丸が他の弾丸に当たったとき、 このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

   public void onBulletHitBullet(BulletHitBulletEvent event) {
     out.println("I hit a bullet fired by " + event.getBullet().getName() + "!");
   }
 

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
BulletHitBulletEventEvent

onBulletMissed

public void onBulletMissed(BulletMissedEvent event)
このロボットが発射したいずれかの弾丸がはずれたとき (壁に当たったとき)、 このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

   public void onBulletHit(BulletMissedEvent event) {
     out.println("Drat, I missed.");
   }
 

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
BulletMissedEventEvent

onDeath

public void onDeath(DeathEvent event)
このメソッドは、ロボットが死んだときに呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。 このセクションから呼び出された動作は無効になります。 このメソッドの意図は、負けたときに 何らかの計算や出力を実行できるようにすることです。

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
DeathEventEvent

onHitByBullet

public void onHitByBullet(HitByBulletEvent event)
このロボットに弾丸が当たったとき、このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

   public void onHitByBullet(BulletHitEvent event) {
     out.println(event.getRobotName() + " hit me!");
   }
 

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
HitByBulletEventEvent

onHitRobot

public void onHitRobot(HitRobotEvent event)
ロボットが他のロボットと衝突したとき、このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

   public 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);
   }
 

角度は、このロボットの方向を基準とする相対角度です。 したがって 0 はロボットの正面を意味します。

このイベントは、 他のロボットがこのロボットに衝突した場合にも生成されます (その場合、 event.isMyFault() は偽を戻します)。 この場合は、 このロボットの動きがゲームによって自動的に停止させられることはありません。 ただし、相手ロボットの方向に移動を続けた場合、 衝突してしまいます (別のイベントが生成されます)。 相手から遠ざかっている場合には、衝突しません。

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
HitRobotEventEvent

onHitWall

public void onHitWall(HitWallEvent event)
ロボットが壁に衝突したとき、このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。
注: 画面上側の壁の角度は 0 度、右側の壁は 90 度、 下側の壁は 180 度、左側の壁は 270 度です。 ただし、このイベントはロボットの向きを基準とする相対角度です。 したがって、turnRight(e.getBearing()) を実行すると、 ロボットは壁に垂直に向きます。

   public void onHitWall(HitWallEvent event) {
     out.println("Ouch, I hit a wall bearing " + event.getBearing() + " degrees.");
   }
 

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
HitWallEventEvent

onRobotDeath

public void onRobotDeath(RobotDeathEvent event)
このメソッドは、 他のいずれかのロボットが死んだときに呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
RobotDeathEventEvent

onScannedRobot

public void onScannedRobot(ScannedRobotEvent event)
ロボットが他のロボットを発見したとき、 このメソッドが呼び出されます。 このイベントが通知されるようにするには、 ロボットのコードでこのメソッドをオーバーライドする必要があります。 (ほとんどすべてのロボットではこれをオーバーライドすべきです!) このイベントは、 ロボットのレーダーの範囲内に別のロボットが存在する場合に自動的に呼び出されます。

方位角は、このロボットの向きを基準とする相対角度です。

   public void onScannedRobot(ScannedRobotEvent event) {
   	// レーダーと大砲の向きが同じである場合...
   	if (event.getDistance() < 100)
   		fire(3);
   	else
   		fire(1);
   }
 
注: ゲームは Robot による発射を以下のように支援します。
レーダーと大砲の向きが同じであり (または、直前に同じ向きに設定されており)、 このイベントが現在のイベントである場合、 他の動作を行う前に fire() を呼び出すと相手ロボットに向けて直接発射されます。 つまり、他のロボットが見えていて、そのロボットが移動しなければ、 発射された弾丸はそのロボットに命中します。
AdvancedRobot の場合はこれとは異なり、イベントをよく調べて、 fire() で発射される弾丸が命中するかどうかを判断します。 (例: 大砲が回転中であれば、 イベントを受け取った時点で大砲はすでに相手ロボットから 5 度ずれた方向を向いています)

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
ScannedRobotEventEvent

onWin

public void onWin(WinEvent event)
このメソッドは、ロボットがバトルに勝ったときに呼び出されます。 このとき、勝利のダンスをすることもできます。

パラメーター:
event - ゲームによって設定されるイベント
関連項目:
WinEventEvent

resume

public void resume()
stop() によってロボットの動作が停止中である場合、 その動作を再開します。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。

関連項目:
stop()

scan

public void scan()
他のロボットを探します。 このロボットが移動または回転しているか、大砲またはレーダーが回転している限り、 このメソッドはゲームによって自動的に呼び出されます。 手動で scan() を呼び出す理由には、以下の 2 つがあります。
1 - 移動を停止した後でスキャンする
2 - onScannedRobot イベントに割り込む
後者の場合の方が多いでしょう。 onScannedRobot の処理中に scan() を呼び出して、 引き続きロボットが見えている場合、 システムは処理中の onScannedRobot イベントにただちに割り込んで、 最初からこれをやり直します。 この呼び出しはただちに実行されます。 スキャンによってロボットが見つかった場合、 onScannedRobot(robocode.ScannedRobotEvent) が発生します。

関連項目:
onScannedRobot(robocode.ScannedRobotEvent)ScannedRobotEvent

setAdjustGunForRobotTurn

public void setAdjustGunForRobotTurn(boolean newAdjustGunForRobotTurn)
ロボットが回転するときに、 大砲が自動的に反対方向に回転するように設定します。
これについては、もっと詳しい説明が必要でしょう。 大砲はロボット本体の上に搭載されています。 したがって、ロボットが右に 90 度回転するとき、 そのままでは、大砲もそれに合わせて回転します。

これを補正するために setAdjustGunForRobotTurn(true) を呼び出せます。 これを設定すると大砲は自動的に反対方向に回るので、 ロボットが回転しても大砲は実際には「静止」しています。

例: ロボットと大砲がどちらも真上 (0 度の方向) を向いているとします。

   setAdjustGunForRobotTurn(false); // これがデフォルトです
   turnRight(90);
   // このとき、ロボットと大砲はどちらも右 (90 度) を向きます
   turnLeft(90);
   // どちらも 0 度の向きに戻ります

   -- あるいは --

   setAdjustGunForRobotTurn(true);
   turnRight(90);
   // このとき、ロボットは右 (90 度) を向きますが、大砲は真上を向いたままです
   turnLeft(90);
   // どちらも 0 度の向きに戻ります
  

注: 大砲の向きをこのように補正することは、 「大砲の回転」と見なされます。 詳しくは setAdjustRadarForGunTurn(boolean) をご覧ください。

関連項目:
setAdjustRadarForGunTurn(boolean)

setAdjustRadarForGunTurn

public void setAdjustRadarForGunTurn(boolean newAdjustRadarForGunTurn)
大砲が回転するときに、 レーダーが自動的に反対方向に回転するように設定します。
以下を読む前に、 setAdjustGunForRobotTurn(boolean) のしくみを理解してください。

setAdjustGunForRobotTurn(boolean) のしくみがわかりましたね?

大砲がロボット本体の上に搭載されているのと同様に、 レーダーは大砲の上に載せられています。 したがって、大砲が右に 90 度回転するとき、 そのままでは、レーダーもそれに合わせて回転します。

これを補正するには、 setAdjustRadarForGunTurn(true) を呼び出してください。 これを設定するとレーダーは自動的に反対方向に回るので、 大砲が回転してもレーダーは実際には「静止」しています (0.97 では、 ロボット本体を基準として相対的に静止しています)。

例: 大砲とレーダーがどちらも真上 (0 度の方向) を向いているとします。

   setAdjustRadarForGunTurn(false); // これがデフォルトです
   turnGunRight(90);
   // このとき、レーダーと大砲はどちらも右 (90 度) を向きます

   -- あるいは --

   setAdjustRadarForGunTurn(true);
   turnGunRight(90);
   // このとき、大砲は右 (90 度) を向きますが、レーダーは真上を向いたままです

 

注: setAdjustRadarForGunTurn を呼び出すと、 同じ値が指定された setAdjustRadarForRobotTurn が自動的に呼び出されます (手動で事前に呼び出した場合を除く)。 この振る舞いの主な目的は、 古い Robocode ロボットとの下位互換性を維持するためです。

関連項目:
setAdjustRadarForRobotTurn(boolean)setAdjustGunForRobotTurn(boolean)

setColors

public void setColors(Color robotColor,
                      Color gunColor,
                      Color radarColor)
このメソッドは、ロボットの色を設定するために呼び出します。 このメソッドは、各バトルにつき 1 度だけ呼び出すことができます。 ヌル値はデフォルト・カラー (青みがかった色) を意味します。
 例:
   // まず、忘れずに java.awt.Color をインポートします
   import java.awt.Color;

   public void run() {
     setColors(Color.black,Color.red,new Color(150,0,150));
   }
 

パラメーター:
robotColor - このロボットの色
gunColor - ロボットの大砲の色
radarColor - ロボットのレーダーの色
関連項目:
Color

stop

public void stop()
動作をすべて停止し、 後で resume() 呼び出しを使って再開できるよう、 保存します。 以前の停止のときの動作がまだ保存されている場合、 これは無効になります。 このメソッドは stop(false) と同等です。 このメソッドはただちに実行されます。

関連項目:
stop(boolean)resume()

stop

public void stop(boolean overwrite)
動作をすべて停止し、 後で resume() 呼び出しを使って再開できるよう、 保存します。 以前の停止のときの動作がまだ保存されている場合、 stop(true) を呼び出すことによってその動作を上書きできます。 この呼び出しはただちに実行されます。

関連項目:
resume()stop()

turnGunLeft

public void turnGunLeft(double degrees)
ロボットの大砲を回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。

   turnGunLeft(90);
 


turnGunRight

public void turnGunRight(double degrees)
ロボットの大砲を回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。

   turnGunRight(90);
 


turnRadarLeft

public void turnRadarLeft(double degrees)
ロボットのレーダーを回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 多くのロボットは、これの代わりに turnGun 関数を使用します。 そうすれば大砲の回転に合わせてレーダーも回転します。 おそらく、大砲が同じ方向を向いていた方がよいでしょう。

   turnRadarLeft(90);
 


turnRadarRight

public void turnRadarRight(double degrees)
ロボットのレーダーを回転させます。 この呼び出しはただちに実行されます。 実行が完了するまでは戻されません。 多くのロボットは、これの代わりに turnGun 関数を使用します。 そうすれば大砲の回転に合わせてレーダーも回転します。 おそらく、大砲が同じ方向を向いていた方がよいでしょう。

   turnRadarRight(90);
 


getEnergy

public double getEnergy()
ロボットの現在のエネルギーを戻します。

戻り値:
ロボットのエネルギー

setAdjustRadarForRobotTurn

public void setAdjustRadarForRobotTurn(boolean newAdjustRadarForRobotTurn)
ロボットが回転するときに、 レーダーが自動的に反対方向に回るように設定します。

レーダーは、ロボットの上に搭載されている大砲の上に搭載されています。 したがって、ロボットが右に 90 度回転するとき、 そのままでは大砲およびレーダーもそれに合わせて回転します。

これを補正するには、 setAdjustRadarForRobotTurn(true) を呼び出してください。 これを設定するとレーダーは自動的に反対方向に回るので、 ロボット本体が回転してもレーダーは実際には「静止」しています。

例: ロボット、大砲、レーダーがすべて真上 (0 度の方向) を向いているとします。

   setAdjustRadarForRobotTurn(false); // これがデフォルトです
   turnRight(90);
   // このとき、3 つはすべて右 (90 度) を向きます

   -- あるいは --

   setAdjustRadarForRobotTurn(true);
   turnRight(90);
   // このとき、ロボットと大砲は右 (90 度) を向きますが、レーダーは真上を向いたままです

 

関連項目:
setAdjustGunForRobotTurn(boolean)setAdjustRadarForGunTurn(boolean)