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