K
Katharsas
Gast
Mein Problem:
Ich habe eine abstrakte Klasse "CObject", eine Klasse "CRObject extends CObject" und eine Klasse "CRSObject extends CRObject".
Die ersten 2 Klassen lassen sich compilieren, aber bei CRSObject bekomme ich in Zeile 17 den BlueJ-Comilerfehler:
"cannot find symbol - constructor CRObject()"
Irgendwas bei den Konstruktoren muss ich falsch gemacht haben:
Klasse CObject:
Klasse CRObject:
Klasse CRSObject:
Damit sich das ganze kompilieren lässt, hier noch die Klasse "vector2":
Hat jemand eine Idee, woran das liegen könnte?
Ich habe eine abstrakte Klasse "CObject", eine Klasse "CRObject extends CObject" und eine Klasse "CRSObject extends CRObject".
Die ersten 2 Klassen lassen sich compilieren, aber bei CRSObject bekomme ich in Zeile 17 den BlueJ-Comilerfehler:
"cannot find symbol - constructor CRObject()"
Irgendwas bei den Konstruktoren muss ich falsch gemacht haben:
Klasse CObject:
Java:
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
/**
* Abstrakte Klasse, Objekte dieser Klasse können gepaintet werden.
* Alle gepainteten Objekte des Spiels leiten sich von dieser Klasse ab.
*
* @author Jan Mothes, David Bauske, Max Patenfelder
*/
abstract class CObject
{
public vector2 m_v2Pos;
public vector2 m_v2Size;
public BufferedImage m_gfx;
public void CObject(String sFileName, vector2 v2Pos, vector2 v2Size)
{
m_v2Pos = v2Pos;
m_v2Size = v2Size;
try
{
m_gfx = ImageIO.read(new File(sFileName));
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Klasse CRObject:
Java:
import java.util.LinkedList;
import java.awt.image.*;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import static java.lang.Math.*;
import java.awt.*;
/**
* Rotating Object - Erweitertes CObject, das sich drehen kann.
*
* @author Jan Mothes
*/
public class CRObject extends CObject
{
public vector2 m_v2Rot;
public double m_dAngle;
CRObject(String sFileName, vector2 v2Pos, vector2 v2Size, vector2 v2Rot)
{
super.CObject(sFileName, v2Pos, v2Size);
m_v2Rot = v2Rot;
}
}
Klasse CRSObject:
Java:
import java.util.LinkedList;
/**
* Rotating and Shooting Object - Erweitertes CRObject, das schießen kann.
*
* @author Jan Mothes
*/
public class CRSObject extends CRObject
{
//Schussliste und Schusseigenschaften
private String m_ShotFileName;
private vector2 m_ShotSize;
private double m_ShotSpeed;//neu erstellter Shot, wird bei Aufrufen der movePlayer() und rotatePlayer() - Funktionen am Player ausgerichtet und ind die Shot-Liste übertragen (Puffer-Schuss)
private char m_NewShotPos;//Bestimmt, von welchem Geschütz der Puffer-Shot abgeschossen wird;
CRSObject(String sFileName, vector2 v2Pos, vector2 v2Size, vector2 v2Rot, String shotFileName, vector2 shotSize, double shotSpeed)
{
super.CRObject(sFileName, v2Pos, v2Size, v2Rot);
m_ShotFileName = shotFileName;
m_ShotSize = shotSize;
m_ShotSpeed = shotSpeed;
}
}
Damit sich das ganze kompilieren lässt, hier noch die Klasse "vector2":
Java:
/**
* Stellt einen 2-dimensionalen Vektor mit den Werten x=x1 und y=x2 dar.
*
* @author David Bauske, Jan Mothes
*/
class vector2
{
public double x;
public double y;
/**
* Konstruktor
*/
public vector2(double XPos, double YPos)
{
x = XPos;
y = YPos;
}
}
Hat jemand eine Idee, woran das liegen könnte?