View Javadoc

1   package de.jos.game.objects.screen;
2   
3   import java.awt.Graphics2D;
4   import java.util.ArrayList;
5   import java.util.List;
6   
7   import org.apache.commons.lang.StringUtils;
8   import org.springframework.beans.factory.xml.XmlBeanFactory;
9   
10  import com.golden.gamedev.GameEngine;
11  import com.golden.gamedev.GameObject;
12  import com.golden.gamedev.gui.toolkit.FrameWork;
13  
14  import de.jos.game.objects.ResourceContainer;
15  import de.jos.game.objects.buttons.GameButton;
16  
17  public abstract class AbstractGameObject extends GameObject {
18  
19    private ResourceContainer resourceContainer = null;
20    private XmlBeanFactory xmlBeanFactory = null;
21  
22    private FrameWork framework = null;
23  
24    private List<GameButton> screenButtons = new ArrayList<GameButton>();
25  
26    /*** Screen der als naechstes anzuzeigen ist (vorgemerkt) */
27    private Screen nextScreen = null;
28  
29    public AbstractGameObject(GameEngine gameEngine, ResourceContainer resourceContainer, XmlBeanFactory xmlBeanFactory) {
30      super(gameEngine);
31      this.resourceContainer = resourceContainer;
32      this.xmlBeanFactory = xmlBeanFactory;
33  
34      // Framework pro Screen initialisieren
35      framework = new FrameWork(bsInput, getWidth(), getHeight());
36    }
37  
38    public abstract void initResources();
39  
40    public void addButtonToScreen(GameButton button) {
41      screenButtons.add(button);
42      framework.add(button);
43    }
44  
45    public abstract void render(Graphics2D graphics);
46  
47    public void update(long elapsedTime) {
48      if (nextScreen != null) {
49        // id des naechsten screens ermitteln und setzen
50        parent.nextGameID = nextScreen.ordinal();
51        // nextScreen zuruecksetzen
52        nextScreen = null;
53        // finish
54        finish();
55      }
56      framework.update();
57    }
58  
59    public ResourceContainer getResourceContainer() {
60      return resourceContainer;
61    }
62  
63    public void setResourceContainer(ResourceContainer resourceContainer) {
64      this.resourceContainer = resourceContainer;
65    }
66  
67    public XmlBeanFactory getXmlBeanFactory() {
68      return xmlBeanFactory;
69    }
70  
71    public void setXmlBeanFactory(XmlBeanFactory xmlBeanFactory) {
72      this.xmlBeanFactory = xmlBeanFactory;
73    }
74  
75    public String getString(String key) {
76      return StringUtils.upperCase(getResourceContainer().getLabelResources().getString(key));
77    }
78  
79    public FrameWork getFramework() {
80      return framework;
81    }
82  
83    public List<GameButton> getScreenButtons() {
84      return screenButtons;
85    }
86  
87    public Screen getNextScreen() {
88      return nextScreen;
89    }
90  
91    public void setNextScreen(Screen nextScreen) {
92      this.nextScreen = nextScreen;
93    }
94  
95  }