Как зафиксировать угловую точность у робокода?
Я только начал играть в робокод, и я столкнулся с этой проблемой угла в моем первом проекте робота. Я придерживаюсь кода, чтобы стрелять по врагам поблизости;
public void onScannedRobot(ScannedRobotEvent e) {
double radarAngle ;
double GunZeroAngle ;
double difference ;
radarAngle = getRadarHeading ();
GunZeroAngle = getGunHeading () ;
difference = radarAngle - GunZeroAngle ;
System.out.print("Target :" + radarAngle + "\nZero : "+ GunZeroAngle +" \nFark : "+ Diff + " \n "+ " *********************** "+ "\n" );
if (fark != 0) {
turnGunRight (fark) ;
fire(1);
моя проблема в том, что когда враги слишком далеко, есть мертвые углы, которые мой пистолет не может так сильно ударить;
а вот углы, которые я написал робологу; Я предполагаю, что разница в углах меньше 1 градуса является проблемой. Но типовые роботы, такие как "углы", могут фокусироваться на цели под любым углом. Кто-нибудь может мне помочь???
1 ответ
Решение
Вы должны получить заголовок отсканированного робота из
ScannedRobotEvent
Затем поверните пистолет в этом направлении и стреляйте.