FlxState.java :  » UnTagged » wargfndev » org » flixel » Android Open Source

Android Open Source » UnTagged » wargfndev 
wargfndev » org » flixel » FlxState.java
package org.flixel;

//@desc    This is the basic game "state" object - e.g. in a simple game you might have a menu state and a play state
public class FlxState extends FlxCore
{
  //@desc    This variable holds the screen buffer, so you can draw to it directly if you want
  static public FlxSprite screen;
  //@desc    This variable indicates the "clear color" or default background color of the game
  static public int bgColor;
  protected FlxLayer _layer;
  
  //@desc    Constructor    
  public FlxState()
  {
    super();
    _layer = new FlxLayer();
    FlxG.state = this;
    if(screen == null)
    {
      screen = new FlxSprite();
      screen.createGraphic(FlxG.width,FlxG.height,0,true);
      screen.origin.x = screen.origin.y = 0;
      screen.antialiasing = true;
    }
  }
  
  //@desc    Adds a new FlxCore subclass (FlxSprite, FlxBlock, etc) to the game loop
  //@param  Core  The object you want to add to the game loop
  public <T extends FlxCore> T add(T Core)
  {
    return _layer.add(Core);
  }
  
  //@desc    Override this function to do special pre-processing FX on FlxG.buffer (like motion blur)
  public void preProcess()
  {
    screen.fill(bgColor);  //Default behavior - just overwrite buffer with background color
  }
  
  //@desc    Automatically goes through and calls update on everything you added to the game loop, override this function to handle custom input and perform collisions
  public void update()
  {
    _layer.update();
  }
  
  //@desc    Automatically goes through and calls render on everything you added to the game loop, override this loop to do crazy graphical stuffs I guess?
  public void render()
  {
    _layer.render();
  }
  
  //@desc    Override this function and use the 'screen' variable to do special post-processing FX (like light bloom)
  public void postProcess() { }
  
  //@desc    Override this function to handle any deleting or "shutdown" type operations you might need (such as removing traditional Flash children like Sprite objects)
  public void destroy() { _layer.destroy(); }
}

java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.