View Javadoc

1   package de.jos.game.logic;
2   
3   import java.awt.Graphics2D;
4   
5   import com.golden.gamedev.GameObject;
6   
7   import de.jos.game.actions.ActionBulletMoving;
8   import de.jos.game.actions.SpecialActionEvent;
9   import de.jos.game.actions.cleanup.CleanupActionBulletMovingInfinite;
10  import de.jos.game.objects.Bullet;
11  import de.jos.game.objects.screen.Screen;
12  
13  public class InfiniteGameLogic extends AbstractGameLogic {
14  
15    private RenderedButton combinationButton = null;
16    private RenderedButton backButton = null;
17  
18    public void init() {
19      backButton = new RenderedButton();
20      backButton.setSprite(getResourceContainer().getAnimatedButtonSprite());
21      backButton.getSprite().setX(2);
22      backButton.getSprite().setY(2);
23      backButton.setNextGameId(Screen.START.ordinal());
24  
25      combinationButton = new RenderedButton();
26      combinationButton.setSprite(getResourceContainer().getAnimatedButtonSprite());
27      combinationButton.getSprite().setX(2);
28      combinationButton.getSprite().setY(400);
29      combinationButton.setNextGameId(Screen.HELP_COMBINATIONS.ordinal());
30    }
31  
32    public void update(long elapsedTime, GameObject gameObject) {
33  
34      combinationButton.update(elapsedTime, gameObject);
35      backButton.update(elapsedTime, gameObject);
36  
37      // standard elemente rendern
38      super.update(elapsedTime, gameObject);
39  
40      if (getBoard().getActionContainer().isBlocking() == true) {
41        return;
42      }
43  
44      InfiniteGameBoard board = (InfiniteGameBoard) getBoard();
45      if (BoardUtils.getBoardBullets(board).isEmpty()) {
46        board.fillFieldsByRandom();
47      }
48  
49    }
50  
51    public void render(Graphics2D graphics, GameObject gameObject) {
52      // render the general game stuff
53      super.render(graphics, gameObject);
54  
55      combinationButton.render(graphics);
56      backButton.render(graphics);
57    }
58  
59    /***
60     * {@inheritDoc}
61     */
62    @Override
63    public void renderBackground(Graphics2D graphics) {
64      // Spielfeld rendern
65      getResourceContainer().getGameBackgroundImage().render(graphics, 0, 0, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
66  
67      // infinite part (rechts) rendern
68      graphics.drawImage(getResourceContainer().getBgPartInfinite(), 470, 0, null);
69    }
70  
71    protected SpecialActionEvent getSpecificBulletMovingAction(Bullet bullet) {
72      ActionBulletMoving abm = new ActionBulletMoving(bullet);
73      abm.setResourceContainer(getResourceContainer());
74      abm.init();
75  
76      CleanupActionBulletMovingInfinite cabmi = new CleanupActionBulletMovingInfinite(getBoard(), bullet);
77      cabmi.setResourceContainer(getResourceContainer());
78      abm.setCleanupAction(cabmi);
79      return abm;
80    }
81  
82  }