1

私はJavaグラフィックプログラミングを扱ってきましたが、それがどのように機能するかを理解していると感じています。

私が気に入らない/まだ把握していないことの1つは、パネルにたくさんのグラフィック(図形、画像など)を描画する方法です。

私が現在読んでいるすべての本/チュートリアルでは、必要なすべての描画をpaintCompnents/paint関数に入れています。元、

public void paint(Graphics g){
    //do stuff here....
}

たくさんのコードを1つの関数に入れるのは醜く、読みづらく、管理や編集が難しくなるほど、描きたいことがたくさんあります...

私はOOPを理解していますが、グラフィックプログラミングは初めてです。キャンバスに描画したいすべての「データ」をどのように管理すればよいですか(正確にはJPanel)。現在、paint(..)メソッド内の関数を呼び出しています。元、

public void paint(Graphics g){
    drawCars(g, x,y,wid,len,etc,etc);
}

それから...

drawCars(Graphics g, int x, int y, int wid, etc etc){
    g.drawSomething(x,y,wid,len,)
    g.drawAnotherThing(x+90,y+60,etc, etc);
}

問題は、私のJPanelクラスで、管理しなければならないこれらすべての漂遊関数を持っていることです。

そして、これは「1ページ」のものを描画するためだけのものです。ビューやゲーム画面を切り替えて、ページ上でたくさんのアニメーションを作成する必要があるとは想像できません。

私はJavaでpaint()メソッドによって描画されたコードを整理する方法についての方向性を探しているだけなので、古い作品を見て夢中にならないようにしています。チュートリアル、本(特に無料の場合)、または読むのに適したコードをいただければ幸いです。

私がこれまでに見つけたものはすべて、graphics / graphics2D / javaで「できる」ことを教えることですが、専門家によって提案された編成/スタイルのヒントを探しています。

4

2 に答える 2

5

車のように描く論理的なもののクラスを作成します。各オブジェクトは、位置、サイズ、色など、自分でペイントするために知っておく必要のあるすべてのことを知っています。これらすべてのオブジェクトに共通のインターフェースを実装させると、それらをすべてリストにまとめることができます。それらを描画するときが来たら、リストを繰り返し処理して、各オブジェクトの描画メソッドを呼び出します。

それとは別に、描画コードを適切に文書化して、各描画ステートメントについて、それが実際の描画である部分が明確になるようにします。

于 2012-08-16T18:42:04.177 に答える
0

こぼれた、gで特定の部分を描画するメソッドを呼び出します。drawRectだけでなく家を描く場合は、

drawRoof(g);
drawDoor(g);

次に、これらの中に、drawRectのような厄介なものがあります...

これは役に立ちますか私はあなたが探しているものを誤解しているかもしれません...

于 2012-08-16T18:41:49.277 に答える