Erro Compilando Robocode

4 respostas
T

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?

4 Respostas

JavaDreams

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.

T
Veja meu código:
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();
		}
	}
}
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?

JavaDreams

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?

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.

Criado 12 de agosto de 2013
Ultima resposta 12 de ago. de 2013
Respostas 4
Participantes 3