2013-03-13 45 views
1

我想在GameCanvas上繪製多個動態精靈,例如槍聲。Java ME在GameCanvas上繪製多個動態精靈

我有2個主要類別:GameCanvasGameController

GameController持有我的槍聲一個向量。 GameCanvas可以訪問GameController的Vector of Sprite和 ,它也有一個render()方法,可以在屏幕上繪製Sprite。

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

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

      flushGraphics(); 
} 

LayerManager保存我想繪製的所有Sprite。

如何在GameController的屏幕上繪製矢量圖中的所有對象?

+0

如果LayerManager類是已經持有所有你想畫,那麼你爲什麼不也增加了每一聲槍響對於LayerManager的其他精靈當玩家火災? – 2013-03-13 06:19:46

+0

所以我必須在GameController中持有對GameCanvas的引用,對吧? 是不是有點凌亂? – jkigel 2013-03-13 06:25:06

回答

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(); 
}