我正在制作一个简单的游戏,其中在屏幕上绘制了两个矩形,并且用户通过键盘箭头键输入其中一个矩形(玩家)将移动。我已经创建了一个Main
类和一个Play
包含我所有游戏代码的类,该代码包括诸如和之类的方法,init()
处理所有初始条件,处理来自输入的移动和键输入以及处理绘图的方法屏幕上的东西,例如背景和矩形。update()
render()
init()
update()
render()
我遇到的问题是通过将它们放在我的渲染类中来在我的屏幕上绘制我的矩形(用我的变量设置),我的方法是用Graphic
s 设置的,我被告知我需要Graphics2D
所以我试图改变我的图形,Graphics2D
以便我可以绘制我的矩形。
这是我的矩形,在我的 ode 顶部设置了我的变量:
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 课程需要更多代码或信息,请告诉我,我会发布。