0

Java の AWT パッケージを使用して、キャンバス上で Graphics2D と BufferStrategy を使用して描画しています。Canvas は JFrame に配置されます。ゲームのエンティティをキャンバスに配置して描画すると、ランダムな順序でレンダリングされているように見えます。エンティティのリストがあり、それらは高度な for ループを使用して描画されます。ゲームを開始するたびに、エンティティはランダムな順序で描画されますが、プログラムを再起動するまで常に同じ順序で描画されます。これは、レンダリング用のループ内のコードです。

for (Entity e : EntityManager.list) {
        e.update();
        e.draw(g, e.x, e.y);
}

これは私の描画方法です:

public void draw(Graphics g,int x,int y) {
    g.drawImage(image,x,y,null);
}

かなり検索しましたが、Graphics2D によるレイヤーの管理方法に関する正確な答えは見つかりませんでした。また、Javadoc では、レイヤーの処理方法については言及されていません。

4

1 に答える 1

0

レイヤーは、リストに追加された順に描画されます。レイヤーを管理するには、レイヤーとエンティティを含む配列リストを作成し、順序を維持するだけでよく、そのように変更できます。

于 2013-04-03T15:27:42.320 に答える