1

我想在 GameCanvas 上绘制多个动态 Sprite,例如枪声。

我有两个主要课程:GameCanvasGameController

GameController持有我的枪击的矢量。

GameCanvas 可以访问GameControllerSprite 的 Vector,它还有一个render()在屏幕上绘制 Sprite 的方法。

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

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

            flushGraphics();
}

LayerManager 包含我要绘制的所有 Sprite。

如何GameController在屏幕上的 Vector 中绘制所有对象?

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 回答