java雷达锁定
import robocode.AdvancedRobot;
import robocode.ScannedRobotEvent;public class RadarTrace extends AdvancedRobot{public void run(){setTurnRadarLeft(400);execute();}/*** 消除錯誤的角度* @param errorDegree* @return*/double clearErrorDegree(double errorDegree){errorDegree = errorDegree % 360;if(errorDegree > 180){errorDegree = -(360 - errorDegree);}if(errorDegree < -180){errorDegree = 360 + errorDegree;}return errorDegree;}/*** 計算雷達請轉角度* @param e* @return*/ double caculateDegree(ScannedRobotEvent e){double degree = 0.0;double heading = getHeading();//得到自己機器人的正方向double radarHeading = getRadarHeading();//得到雷達的正方向double bearing = e.getBearing();//從雷達事件的參數中得到敵人和自己機器人的夾角degree = radarHeading - heading - bearing;//得到回掃角度//處理異常角度return clearErrorDegree(degree);}/*** 旋轉雷達* @param degree*/void turnRadar(double degree){setTurnRadarLeft(degree * 1.3);//雷達鎖定}/*** 雷達鎖定*/void radarTrace(ScannedRobotEvent e){//計算雷達回轉角度double degree = caculateDegree(e);//按角度旋轉turnRadar(degree);}public void onScannedRobot(ScannedRobotEvent e){//必須讓雷達跟蹤住敵人radarTrace(e);}}
轉載于:https://www.cnblogs.com/aicpcode/p/4290214.html
總結
- 上一篇: perl学习之:localtime
- 下一篇: 九度oj 1006 ZOJ问题 2010