Jump to content

Recommended Posts

Posted

Olá galera estou estudando robocode e me deparei com esse método que não entendi:

 public void onScannedRobot(ScannedRobotEvent e) 
    {
       double posicaoAbsoluta = getHeading() + e.getBearing();
       double posicaoDaArma = posicaoAbsoluta - getGunHeading();
       turnGunRight(posicaoDaArma);
       fire(3);   
    }

porfavor estou precisando que me ajudem o mais rápido posivel, grato!

Posted

Primeira coisa:

Esse método é chamado sempre que outro robot é detectado no radar e recebe sempre como argumento um objecto do tipo ScannedRobotEvent que te permite aceder a várias informações e métodos sobre o teu robot e o robot detectado nesse momento.

Se não estou em erro esse método tem que ser implementado obrigatóriamente.

Agora o que é que o exemplo que afixaste faz? Vamos analisar então.

Em primeiro lugar, esses valores todos são ângulos.

double posicaoAbsoluta = getHeading() + e.getBearing();

Guarda na variável posicaoAbsoluta a direcção na bússola em que o outro robot está em relação a ti. Isto é feito somando o ângulo que a frente do teu robot faz com o norte com ângulo que a direcção em que o outro robot está em relação a para onde estás virado.

double posicaoDaArma = posicaoAbsoluta - getGunHeading();

gurda na variável posicaoDaArma o ângulo da arma faz com a direcção do outro robot. Ou seja, o ângulo que é preciso roda-la para por o gajo na mira.

Se for zero então quer dizer que já estás pronto a disparar!

turnGunRight(posicaoDaArma);

Pega-se no ângulo anterior e roda-se a arma esses tantos radianos/graus...

Supostamente tens o enimigo na mira!

muaahahahahah!

fire(3);

Dispara um bala de calibre 3.

Boom! Se o gajo não se desviar já leva com um tiro.

porfavor estou precisando que me ajudem o mais rápido posivel, grato!

Não é preciso pedir desta forma, o pessoal aqui ajuda sempre que pode.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.