だから、私はいくつかのゲームを持って、例えばポンを取ると言うことができます。明らかに、ゲームロジックをグラフィックスクラスに混ぜるのは一般的ではないので、ボールまたはパドルのクラスは、実際に描画するJPanelからのものです。ボールにはボールの動きロジック、現在の位置、ヒットの検出などがありますが、ボールクラスでSwingやawtのグラフィックスクラスを使用するのは悪い習慣ですか?たとえば、java.awt.Rectangleを使用してヒットボックスを決定する場合です。私はこのクラスでそれを描画していませんが、私はそれを使用しています。または、Java.awt.Pointを使用して座標を格納する場合。私のプログラムで私の非グラフィクス関連のクラスにswingクラスとawtクラスを使用するのは悪い習慣ですか?
ところで、私はこのサイトで何度もグラフィックを混ぜないように言われているからです。非グラフィックスクラスの四角形を使用して
:(?この悪い習慣です)
public class Ball {
static Rectangle hitbox = new Rectangle(0,10,20,20);
static void checkHit() {
if(hitbox.intersects(Paddle.hitbox) //do something
}
}
マイGraphicsクラス:
public class DrawMyStuff extends JPanel {
void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.BLACK);
Graphics2D g2d = (Graphics2D) g;
g2d.draw(Ball.hitbox);
}
}
これは主に主観的な問題ですが、私が与える例は完全にうまくいきます。独自のPointクラスとRectangleクラスを実装する場合、AWTが使用するクラスとほぼ同じである可能性があります。その場合は、どうして迷惑でしょうか? –
あなたの質問には、はい/いいえをanwerするのは難しいです。スイングアプリケーションを実行していて、あなたのコードがアプリを振る以上のものにならないなら、 'java.awt.Rectangle'クラスを使用するのは大丈夫ですが、それ以外の何かをするつもりならあなたがアンドロイドアプリのコードを使用する場合、あなたはまだスイング/ awtのjarファイルを提供する必要があるでしょう。 1つのクラスまたは1つのメソッドに対してだけ複雑なライブラリをプロジェクトに追加すると、それは過剰です – user902383