Hi guys, I have a trouble. I have extended Spatial class and have named the new class as “PieceSpatial”. However, I cannot cast spatials to that new object. Here is a sample :
This is what I try :
[java]
private void drawPiece(Piece piece) {
PieceSpatial pieceMesh = (PieceSpatial) getPieceObject(piece);
pieceMesh.setOriginalMaterial(getPieceMaterial(piece.getColor()));
pieceMesh.setMaterial(pieceMesh.getOriginalMaterial());
pieceMesh.setLocalTranslation((float) (2 * piece.getX()) + 1, 0f, -((float) (2 * piece.getY()) + 1));
boardNode.attachChild(pieceMesh);
}
[/java]
It gives me that error :
[java]
“java.lang.ClassCastException: com.jme3.scene.Node cannot be cast to chessgame.view.elements.PieceSpatial”
at chessgame.view.SceneHandler.drawPiece(SceneHandler.java:86)
at chessgame.view.SceneHandler.drawPieceObjects(SceneHandler.java:81)
at chessgame.view.SceneHandler.drawChessSet(SceneHandler.java:69)
at chessgame.ChessGame.simpleInitApp(ChessGame.java:39)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:225)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207)
at java.lang.Thread.run(Thread.java:722)
[/java]
\nThis is my extended Spatial :
[java]
public abstract class PieceSpatial extends Spatial {
private Material originalMaterial;
public void setOriginalMaterial(Material material) {
this.originalMaterial = material;
}
public Material getOriginalMaterial() {
return originalMaterial;
}
}
[/java]