Jeangleison Posted April 25, 2009 at 10:04 PM Report #259098 Posted April 25, 2009 at 10:04 PM 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!
bruno1234 Posted April 26, 2009 at 02:21 AM Report #259116 Posted April 26, 2009 at 02:21 AM Isso é um evento, pelo aspecto diria q é disparado assim q o teu robot encontra outro. recebe como parametro argumentos do robot q encontrou. Depois calcula a sua posição e a da arma, e vira a arma até ficar de frente p o inimigo e dispara. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
pedrotuga Posted April 26, 2009 at 02:21 AM Report #259117 Posted April 26, 2009 at 02:21 AM 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.
Jeangleison Posted April 26, 2009 at 12:00 PM Author Report #259137 Posted April 26, 2009 at 12:00 PM Vlws cara, desculpa! Entendi. Obrigado mesmo! 🙂
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now