Ola galera, estou com uma dúvida em meu código Robocode, esta dando erro: ‘HitByBulletEvent cannot be resolved to a type’. Alguém sabe me dizer o que significa?
thedark,
“Falando a grosso modo”
Acredito que pelo erro você deve estar tentando instanciar algum objeto ou referenciar alguma coisa utilizando o tipo HitByBulletEvent.
No entanto esse cara não é tipo digamos uma “Classe” que possa ser instanciada.
Ele é um evento que deve ser acionado quando alguma coisa acontecer.
“Falando mais finamente”
1 - Comece pegando uns tutoriais tipo esse aqui abaixo que eu achei no YT
http://www.youtube.com/watch?v=u7QWDVO2lV4
2 - No link abaixo você tem algumas informações sobre o que está querendo utilizar
assim como a indicação de que esse cara é um método e não uma classe.
(Lembrando que classe pode ser usada como tipo de algum objeto, mas méthodo deve ser chamado de algum lugar)
http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html
Exemplificando:
No link acima tem o seguinte:
void onHitByBullet(HitByBulletEvent event)
This method is called when your robot is hit by a bullet.
ou seja,
1 - é um método void, ou seja não retorna nada, simplesmente executa algo
2 - A frase “This method is called when your robot is hit by a bullet.”
indica: Este método é chamado quando o robô é atingido por uma bala.
Assim pelo que pude ver em algumas vídeo-aulas no YT, percebo que
quando o seu robô for atingido por alguma bala, então esse evento(Em forma de método)
será disparado e por suma ele sendo disparado alguma coisa acontecerá ou alguma coisa
o seu robô fará.
Fica a dica:
Dá uma olhada em alguns tutoriais iniciais no YT para pegar só os macetes iniciais
para começar a mexer no seu robô.
Esse vídeo que passei tem os sites e links com documentação, exemplos e muito mais.
De bobeira também se for o caso eu instalo aqui no pc esse robocode também, pois acho
ele muito bacana.
Olha aí e depois nos dá um retorno.
abraço.
Veja meu código:
[code]package Robo;
import robocode.HitRobotEvent;
import robocode.Robot;
import robocode.ScannedRobotEvent;
import robocode.HitByBulletEvent;
import java.awt.*;
public class Pangare extends Robot
{
boolean peek; // Don’t turn if there’s a robot there
double moveAmount; // How much to move
/**
* run: Move around the walls
*/
public void run() {
// Set colors
setBodyColor(Color.black);
setGunColor(Color.black);
setRadarColor(Color.orange);
setBulletColor(Color.cyan);
setScanColor(Color.cyan);
// Initialize moveAmount to the maximum possible for this battlefield.
moveAmount = Math.max(getBattleFieldWidth(), getBattleFieldHeight());
// Initialize peek to false
peek = false;
// turnLeft to face a wall.
// getHeading() % 90 means the remainder of
// getHeading() divided by 90.
turnLeft(getHeading() % 90);
ahead(moveAmount);
// Turn the gun to turn right 90 degrees.
peek = true;
turnGunRight(90);
turnRight(90);
while (true) {
// Look before we turn when ahead() completes.
peek = true;
// Move up the wall
ahead(moveAmount);
// Don't look now
peek = false;
// Turn to the next wall
turnRight(90);
}
}
/**
* onHitRobot: Move away a bit.
*/
public void onHitRobot(HitRobotEvent e) {
// If he's in front of us, set back up a bit.
if (e.getBearing() > -90 && e.getBearing() < 90) {
back(100);
} // else he's in back of us, so set ahead a bit.
else {
ahead(100);
}
}
public void onHitByBullet (HitByBulletEvent e) {
turnLeft(360);
}
/**
* onScannedRobot: Fire!
*/
public void onScannedRobot(ScannedRobotEvent e) {
fire(2);
// Note that scan is called automatically when the robot is moving.
// By calling it manually here, we make sure we generate another scan event if there's a robot on the next
// wall, so that we do not start moving up it until it's gone.
if (peek) {
scan();
}
}
}[/code]
Me parece que o robocode.jar (fica na pasta libs do Robocode) não está no seu classpath. Adicione-o e tente compilar novamente.
Você está usando algum IDE ou está compilando na linha de comando?
[quote=Ataxexe]Me parece que o robocode.jar (fica na pasta libs do Robocode) não está no seu classpath. Adicione-o e tente compilar novamente.
Você está usando algum IDE ou está compilando na linha de comando?[/quote]
Ou, igual o Ataxexe falou pode ser verdade, tem que configurar direitinho para poder rodar.
Mano faz o seguinte, segue ao pé da letra esse tutorial aqui olha:
faz tudo igualzinho o cara tá configurando e tenta rodar no seu pc para ver se vai dar certo.
Se não der certo então eu testo a configuração aqui no meu pc para a gente ver, mas antes
de mais nada tu tem que fazer o tutorial de config direitinho ai…
abraços.