0

画面に2つの長方形が描画され、キーボードの矢印キーからのユーザー入力により、長方形の1つ(プレーヤー)が移動する単純なゲームを作成しています。Mainクラスと、Playすべてのゲーム コードで構成されるクラスを作成しました。このコードには、 、 などのメソッドが含まれておりinit()update()すべてrender()init()初期条件をupdate()処理し、入力からの動きとキー入力を処理し、render()メソッドは描画を処理します。背景や長方形などの画面上のもの。

私が抱えている問題は、レンダークラスに配置して画面に長方形(変数で設定されている)を描画することです。メソッドはGraphics で設定されており、必要であると言われているGraphics2Dので、変更しようとしていますGraphics2D長方形を描画できるように、グラフィックスを追加しました。

ここに私のコードの一番上にある私の変数で設定された私の Rectangles があります:

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 クラスからさらにコードや情報が必要な場合は、お知らせください。投稿します。

4

0 に答える 0