0

画面上に 2 つの四角形があり、一方の四角形が移動し、もう一方が静止している単純な Java ゲームをコーディングしました。移動する四角形は、キーボードの矢印入力で移動し、上下左右に移動できます。私が抱えている問題は、画面に四角形を描画することです。つまり、次のように変数を使用して2つの四角形を設定しています。

Rectangle rectOne = new Rectangle(shiftX, shiftY,90,90);
Rectangle rectTwo = new Rectangle(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);

画面に表示したいものを描画するための render メソッドを作成しました。

 public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
}

私が抱えている問題は、render メソッドにコードを記述して画面に四角形を表示することです。次のことができます。

g.fillRect(x, y,90,90);
g.fillRect(500 + buckyPositionX, 330 + buckyPositionY, 210, 150);

画面上に 2 つの四角形が作成されますが、変数で記述された Rectangle コードを使用して四角形を描画する必要があります。これは Graphics2D を使用して実行できると言われていますが、グラフィックス関数を使用するだけの簡単な方法があるかどうか疑問に思っています、そうでない場合は、セットアップを手伝っていただけませんか?

前もって感謝します。

4

2 に答える 2

2

Rectangleインスタンスの属性に簡単にアクセスできます。

g.fillRect(rectOne.getX(), rectOne.getY(), rectOne.getWidth(), rectOne.getHeight());

いずれにせよ、通常、GraphicsオブジェクトはGraphics2D実行時のインスタンスであるため、これも簡単に機能することに注意してください。

Graphics2D g2d = (Graphics2D)g;
g2d.fill(rectOne);
于 2013-01-03T19:30:15.380 に答える
1

使用するだけです:

g.fillRect(myRect.getX(), myRect.getY(), myRect.getWidth(), myRect.getHeight());

myRect描きたい四角形はどこにありますか。drawRect(Graphics g, Rectangle myRect);描画する長方形がたくさんある場合は、カスタム メソッドを作成することもできます。

提供オブジェクトは通常オブジェクトであるため、 Graphics2Dの使用もそれほど難しくありません。GraphicsGraphics2D

Graphics2D g2d = (Graphics2D) g;
g2d.fill(myRect);
于 2013-01-03T19:31:15.533 に答える