2013-10-23 4 views
1
내가 Slick2D 여기에 약간의 게임에 일한지

은 JavaDoc을이다Slick2D ClassCastException이

java.lang.ClassCastException: org.newdawn.slick.geom.Polygon cannot be cast to org.newdawn.slick.geom.Ellipse 

나를 벗어 버리는 것은 .. shape.transform()은 특정 모양으로 형변환 될 추상 셰이프 클래스를 반환합니다. 다른 클래스의 Polygon을 사용하여 동일한 작업을 수행 했으므로 제대로 작동합니다. 사람이 경험이있는 경우

, 그것은 많은 감사있어, 구글은 내게 많은 도움이되지

편집 * 아, 미안, 나는 this.shape 만든 방법 포함 깜빡 해요 :

Ellipse shape; 
... 
shape = new Ellipse(diameter/2,diameter/2,posx,posy); 

답변

1

이 문제는 this.shape.transform() 메서드가 다각형을 반환하지만 Ellipse를 변환함으로써 발생합니다.

EllipsePolygonShape에서 확장됩니다. 따라서 Ellipse shape 대신 Shape shape을 선언하십시오.

이제 전송하지 않고 직접 할당 할 수 있습니다.

this.shape = this.shape.transform(Transform.createTranslateTransform((float)(speed*Math.sin(angle)),(float)(speed*Math.cos(angle)*-1))); 

필요한 경우 입력하십시오.

+0

글쎄, 그게 예상보다 쉬웠 어. – EyeOfTheHawks

+0

@EyeOfTheHawks, 듣고 기쁩니다. 천만에요. – Prabhakaran