-1

画面上のランダムな場所にランダムなサイズと色の正方形が表示され、それらをクリックする必要がある単純なゲームを作成しようとしています。クリックすればするほど、スコアが高くなります。

正方形をクリックすると消えるようにする方法がわかりません。

これが私の長方形のコードです

g.fillRect(Cube.cubePosX, Cube.cubePosY, Cube.cubeSize, Cube.cubeSize);

位置、サイズ、および色は、別のクラス ファイルで既に決定されており、ランダムに選択されています。

4

3 に答える 3

2

提案:

  • 描画している Rectangles をハードコーディングしないでください。
  • 代わりに、JPanel を描画ArrayList<Rectangle>するメソッドの for ループで描画されるなどの Rectangle のコレクションを作成します。paintComponent(...)
  • 次に、ユーザーがそれらをクリックしたときに、それらを ArrayList から削除します。
  • これは MouseListener で行われ、再び for ループを使用します。
  • ただし、重要なのは、このループが逆方向に繰り返されることです。この理由は、他のすべての「上」にある Rectangle が最後に描画されるためです。クリックすると、最初に削除されるはずです。
  • repaint()Rectangle を削除した後、描画 JPanel (または JComponent) を呼び出します。
于 2013-07-22T00:44:38.370 に答える
2

画面上のランダムな場所にランダムなサイズと色の正方形が表示され、それらをクリックする必要がある単純なゲームを作成しようとしています

これには Swing コンポーネントを使用することもできます。その他のアイデアについては、シェイプで遊ぶを参照してください。各コンポーネントに MouseListener を追加すると、クリックされたときにパネルからコンポーネントを削除できます。

コンポーネントを使用したくない場合でも、Shape の使用を検討して、ゲームが単なる長方形以外の形状を持つことができるようにする必要があります。この場合、Butchcraft の提案はすべて適用されます。

于 2013-07-22T00:52:11.187 に答える
1

これらの長方形がどこにあるかを示すある種のキャッシュを保持する必要があります。

このキャッシュは、クリックされたことを検出するためだけでなく、ペイントするためにも使用する必要があります。

詳細については、マウス リスナーの作成方法を参照してください。

あなたもRectangleいくつかの用途を見つけます

于 2013-07-22T00:46:17.563 に答える