我正在制作一个简单的游戏,其中屏幕上绘制了两个矩形,并且用户输入了键盘箭头键,其中一个矩形(玩家)将移动。我创建了一个Main
课程和一个Play
课程,其中包含我的所有游戏代码,此代码包含init()
,update()
和render()
等方法, init()
处理所有初始条件,update()
处理来自输入的移动和键输入,render()
方法处理将内容绘制到屏幕上,例如背景和矩形。
我遇到的问题是在我的屏幕上绘制我的矩形(用我的变量设置),将它们放在我的渲染类中,我的方法设置为Graphic
s我被告知我需要Graphics2D
所以我试图将我的图形更改为Graphics2D
,以便我可以绘制矩形。
这是我在我的颂歌顶部设置了我的变量的矩形:
Rectangle rectOne = new Rectangle(shiftX, shiftY,90,90);
Rectangle rectTwo = new Rectangle(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);
这是我的渲染方法,我试图使用graphics2D绘制我的矩形:
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
if(rectOne.intersects(rectTwo)){
g.drawString("Intersect", 100, 100);}
if(g instanceof Graphics2D){//error: Incompatible conditional operand type Graphics and Graphics2D
Graphics2D g2 = (Graphics2D)g;}//cannot cast from Graphics to Graphics2D
((Graphics2D)g).fill(rectOne);//cannot cast from Graphics to Graphics2D
((Graphics2D)g).fill(rectTwo);//cannot cast from Graphics to Graphics2D
}
我的代码旁边的注释显示了我尝试使用此代码时出现的错误。如果我的Play课程需要更多代码或信息,请告诉我,我会发布。