Android Open Source - LucyTheMoocher Global Controller






From Project

Back to project page LucyTheMoocher.

License

The source code is released under:

MIT License

If you think the Android project LucyTheMoocher listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.lucythemoocher.controls;
//w  ww. j av  a  2s. com
import java.util.ArrayList;

import android.view.KeyEvent;
import android.view.MotionEvent;


/**
 * Singleton class.
 * Recieve hardware events and notifies
 * its listeners (observer pattern) 
 *
 */
public class GlobalController {

  private ArrayList<TouchListener> touchListenners_;
  private ArrayList<ButtonListener> buttonListenners_;
  private ArrayList<KeysListener> keysListeners_;
  private static GlobalController instance_ = null;
  
  /**
   * Private constructor
   */
  private GlobalController() {
    touchListenners_ = new ArrayList<TouchListener>();
    buttonListenners_ = new ArrayList<ButtonListener>();
    keysListeners_ = new ArrayList<KeysListener>();
  }
  
  /**
   * Getter of the instance of GlobalController
   * @return instance
   */
  public static GlobalController getInstance() {
    if ( instance_ == null ) {
      instance_ = new GlobalController();
    }
    return instance_;
  }
  
  /**
   * Register
   * @param l
   */
  void registerTouch(TouchListener l) {
    touchListenners_.add(l);
  }

  public void unregisterTouch(TouchListener l) {
    touchListenners_.remove(l);
  }
  
  public void registerKey(KeysListener l) {
    keysListeners_.add(l);
  }
  
  public void unregisterKey(KeysListener l) {
    keysListeners_.remove(l);
  }
  
  /**
   * Register
   * @param l
   */
  void registerButton(ButtonListener l) {
    buttonListenners_.add(l);
  }
  
  
  /**
   * Process the event
   * @param event
   */
  public void process(MotionEvent event) {
    alertTouch(event);
  }
  
  public void processKey(int KeyCode, KeyEvent event) {
    for (int i = 0; i < keysListeners_.size(); ++i) {
      keysListeners_.get(i).onKeyDown(KeyCode, event);
    }
  }
  
  private void alertTouch(MotionEvent event) {
    for (int i = 0; i < touchListenners_.size(); ++i) {
      touchListenners_.get(i).motion(event);
    }
  }
}




Java Source Code List

com.lucythemoocher.LucyTheMoocherActivity.java
com.lucythemoocher.FX.FXManager.java
com.lucythemoocher.FX.FX.java
com.lucythemoocher.Globals.Globals.java
com.lucythemoocher.actors.Actor.java
com.lucythemoocher.actors.ActorsManager.java
com.lucythemoocher.actors.Monster.java
com.lucythemoocher.actors.MonstersManager.java
com.lucythemoocher.actors.PlayerCharacter.java
com.lucythemoocher.actors.Projectile.java
com.lucythemoocher.actors.ProjectilesManager.java
com.lucythemoocher.actors.Tank.java
com.lucythemoocher.actors.TargetCharacter.java
com.lucythemoocher.actors.maincharacter.state.StateAttack.java
com.lucythemoocher.actors.maincharacter.state.StateFalling.java
com.lucythemoocher.actors.maincharacter.state.StateJumping.java
com.lucythemoocher.actors.maincharacter.state.StateNone.java
com.lucythemoocher.actors.maincharacter.state.StateRunning.java
com.lucythemoocher.actors.maincharacter.state.StateWallSliding.java
com.lucythemoocher.actors.maincharacter.state.StateWallWalking.java
com.lucythemoocher.actors.maincharacter.state.State.java
com.lucythemoocher.controls.AIController.java
com.lucythemoocher.controls.ActionController.java
com.lucythemoocher.controls.ButtonListener.java
com.lucythemoocher.controls.Controllable.java
com.lucythemoocher.controls.Controller.java
com.lucythemoocher.controls.GlobalController.java
com.lucythemoocher.controls.KeysListener.java
com.lucythemoocher.controls.TouchListener.java
com.lucythemoocher.events.EventNormal.java
com.lucythemoocher.events.EventSlow.java
com.lucythemoocher.events.Event.java
com.lucythemoocher.game.GameThread.java
com.lucythemoocher.game.Game.java
com.lucythemoocher.game.LevelLoader.java
com.lucythemoocher.graphics.ActorDrawer.java
com.lucythemoocher.graphics.Animation.java
com.lucythemoocher.graphics.Background.java
com.lucythemoocher.graphics.Camera.java
com.lucythemoocher.graphics.Drawable.java
com.lucythemoocher.graphics.Grid.java
com.lucythemoocher.graphics.HUD.java
com.lucythemoocher.graphics.Image.java
com.lucythemoocher.graphics.PersistentEffect.java
com.lucythemoocher.graphics.PersistentPic.java
com.lucythemoocher.graphics.PictureContainer.java
com.lucythemoocher.gui.MenuButtonListener.java
com.lucythemoocher.gui.MenuButtonTouchListener.java
com.lucythemoocher.gui.MenuButton.java
com.lucythemoocher.loops.CreditsLoop.java
com.lucythemoocher.loops.GameOverLoop.java
com.lucythemoocher.loops.InitMenuLoop.java
com.lucythemoocher.loops.LivesMenuLoop.java
com.lucythemoocher.loops.LoopGame.java
com.lucythemoocher.loops.LoopPause.java
com.lucythemoocher.loops.Loop.java
com.lucythemoocher.loops.MasterLoop.java
com.lucythemoocher.physics.Box.java
com.lucythemoocher.physics.Cinematic.java
com.lucythemoocher.physics.Map.java
com.lucythemoocher.sounds.SoundManager.java
com.lucythemoocher.sounds.SoundsState.java
com.lucythemoocher.sounds.StateLevel1.java
com.lucythemoocher.sounds.StateLevel2.java
com.lucythemoocher.sounds.StateLevel3.java
com.lucythemoocher.sounds.StateNormal.java
com.lucythemoocher.util.Direction.java
com.lucythemoocher.util.MathUtil.java
com.lucythemoocher.util.Resources.java
com.lucythemoocher.util.Timer.java