1

GameCanvasを利用して、銃声などの複数の動的スプライトを描画したいと思います。

私には2つの主要なクラスがあります:GameCanvasそしてGameController

GameController私の銃撃のベクトルを保持します。

GameCanvasには、GameControllerのスプライトのベクトルへのアクセス権がありrender()、画面にスプライトを描画するメソッドもあります。

private void render() {
            Graphics g = getGraphics();

            layerManager.setViewWindow(0, 0, getWidth(), getHeight());
            layerManager.paint(g, 0, 0);

            flushGraphics();
}

LayerManagerは、描画したいすべてのスプライトを保持します。

GameController画面上ののベクトル内のすべてのオブジェクトを描画するにはどうすればよいですか?

4

1 に答える 1

0

私はそれがこのようにできると思います:

Graphics g = getGraphics(); // No need to get this each time you render. Get it once outside the render function

private void render() {

  layerManager.setViewWindow(0, 0, getWidth(), getHeight());
  layerManager.paint(g, 0, 0);

  // Loop through the vector
  for (Enumeration en = gunshotVector.elements(); en.hasMoreElements();) {
    ((Sprite)en).paint(g);
  }

  flushGraphics();
}
于 2013-03-13T08:29:47.487 に答える