Android Open Source - X3n0break Effect






From Project

Back to project page X3n0break.

License

The source code is released under:

GNU General Public License

If you think the Android project X3n0break 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 org.x3n0m0rph59.breakout;
// ww  w  .  j a  v a2  s .com
import java.io.Serializable;

import com.badlogic.gdx.Gdx;


public class Effect implements Stepable, Serializable {  
  /**
   * 
   */
  private static final long serialVersionUID = 1837975219174877641L;

  public enum Type {
    // Special effects/abilities
    FIREBALL,
    MULTIBALL,
    EXPAND_PADDLE, 
    SHRINK_PADDLE, 
    BOTTOM_WALL, 
    PADDLE_GUN,
    STICKY_BALL,
    SPEED_UP,
    SLOW_DOWN,  
    
    // TODO:
    // 2d movement of paddle
    // multi paddle
    // Ball movement influenced by mouse
    
    // Bonuses
    // NEW_BALL,
    // SCORE_BOOST,
  }
  
  private Type type;
  private float effectDuration;
  private boolean expired = false;
  
  public Effect(Type type, float effectDuration) {
    this.type = type;
    this.effectDuration = effectDuration;
    
    // Apply effect (if applicable)
    switch (type) {    
    case EXPAND_PADDLE:
      ((App) Gdx.app.getApplicationListener()).getGameScreen().getPaddle().expand();
      break;    
    
    case MULTIBALL:
      ((App) Gdx.app.getApplicationListener()).getGameScreen().spawnBall(true);
      break;
      
    case BOTTOM_WALL:
      break;
      
    case FIREBALL:
      break;
      
    case PADDLE_GUN:
      break;
      
    case SHRINK_PADDLE:
      ((App) Gdx.app.getApplicationListener()).getGameScreen().getPaddle().shrink();
      break;
      
    case STICKY_BALL:
      break;
      
    case SPEED_UP:
      Config.getInstance().increaseGameSpeed(Config.POWERUP_SPEEDUP_FACTOR);      
      break;
      
    case SLOW_DOWN:
      Config.getInstance().decreaseGameSpeed(Config.POWERUP_SLOWDOWN_FACTOR);
      break;
      
    default:
      throw new RuntimeException("Unsupported EffectType: " + type);
    }
  }
  
  public void expire() {
    this.expired = true;
    
    Logger.debug("Expired effect: " + this.type);
    
    // Un-apply effect
    switch (type) {
    case BOTTOM_WALL:
      break;
      
    case EXPAND_PADDLE:
      ((App) Gdx.app.getApplicationListener()).getGameScreen().getPaddle().shrink();
      break;
      
    case FIREBALL:
      break;
      
    case MULTIBALL:
      break;
      
    case PADDLE_GUN:
      break;
      
    case SHRINK_PADDLE:
      ((App) Gdx.app.getApplicationListener()).getGameScreen().getPaddle().expand();
      break;
      
    case STICKY_BALL:
      break;
      
    case SPEED_UP:
      Config.getInstance().decreaseGameSpeed(Config.POWERUP_SPEEDUP_FACTOR);
      break;
      
    case SLOW_DOWN:
      Config.getInstance().increaseGameSpeed(Config.POWERUP_SLOWDOWN_FACTOR);      
      break;
      
    default:
      throw new RuntimeException("Unsupported EffectType: " + type);    
    }
  }
  
  @Override
  public void step(float delta) {
    if ((effectDuration -= delta) <= 0) {
      expire();
    }    
  }
  
  public Type getType() {
    return type;
  }

  public float getEffectDuration() {
    return effectDuration;
  }

  public void setEffectDuration(int effectDuration) {
    this.effectDuration = effectDuration;
  }

  public boolean isExpired() {
    return expired;
  }

  public void setType(Type type) {
    this.type = type;
  }

  public void setEffectDuration(float effectDuration) {
    this.effectDuration = effectDuration;
  }

  public void setExpired(boolean expired) {
    this.expired = expired;
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + Float.floatToIntBits(effectDuration);
    result = prime * result + (expired ? 1231 : 1237);
    result = prime * result + ((type == null) ? 0 : type.hashCode());
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    Effect other = (Effect) obj;
    if (Float.floatToIntBits(effectDuration) != Float
        .floatToIntBits(other.effectDuration))
      return false;
    if (expired != other.expired)
      return false;
    if (type != other.type)
      return false;
    return true;
  }

  @Override
  public String toString() {
    return "Effect [type=" + type + ", effectDuration=" + effectDuration
        + ", expired=" + expired + "]";
  }
}




Java Source Code List

org.x3n0m0rph59.breakout.App.java
org.x3n0m0rph59.breakout.BackgroundFactory.java
org.x3n0m0rph59.breakout.Background.java
org.x3n0m0rph59.breakout.Ball.java
org.x3n0m0rph59.breakout.BottomWall.java
org.x3n0m0rph59.breakout.Brick.java
org.x3n0m0rph59.breakout.Config.java
org.x3n0m0rph59.breakout.Destroyable.java
org.x3n0m0rph59.breakout.EffectManager.java
org.x3n0m0rph59.breakout.Effect.java
org.x3n0m0rph59.breakout.FontLoader.java
org.x3n0m0rph59.breakout.FontTuple.java
org.x3n0m0rph59.breakout.ForceFeedback.java
org.x3n0m0rph59.breakout.GameInputProcessor.java
org.x3n0m0rph59.breakout.GameObject.java
org.x3n0m0rph59.breakout.GameScreen.java
org.x3n0m0rph59.breakout.GameState.java
org.x3n0m0rph59.breakout.GrapplingHookSegment.java
org.x3n0m0rph59.breakout.GrapplingHook.java
org.x3n0m0rph59.breakout.HelpInputProcessor.java
org.x3n0m0rph59.breakout.HelpScreen.java
org.x3n0m0rph59.breakout.HighScoreManager.java
org.x3n0m0rph59.breakout.HighScoreScreen.java
org.x3n0m0rph59.breakout.HighScore.java
org.x3n0m0rph59.breakout.HighscoreInputProcessor.java
org.x3n0m0rph59.breakout.IOSLauncher.java
org.x3n0m0rph59.breakout.LevelLoader.java
org.x3n0m0rph59.breakout.LevelSetSelectorInputProcessor.java
org.x3n0m0rph59.breakout.LevelSetSelectorScreen.java
org.x3n0m0rph59.breakout.Logger.java
org.x3n0m0rph59.breakout.MenuInputProcessor.java
org.x3n0m0rph59.breakout.MenuScreen.java
org.x3n0m0rph59.breakout.MusicLoader.java
org.x3n0m0rph59.breakout.MusicStream.java
org.x3n0m0rph59.breakout.ObjectPool.java
org.x3n0m0rph59.breakout.Paddle.java
org.x3n0m0rph59.breakout.ParticleSystem.java
org.x3n0m0rph59.breakout.Particle.java
org.x3n0m0rph59.breakout.Point.java
org.x3n0m0rph59.breakout.Poolable.java
org.x3n0m0rph59.breakout.Powerup.java
org.x3n0m0rph59.breakout.Projectile.java
org.x3n0m0rph59.breakout.Renderable.java
org.x3n0m0rph59.breakout.ResourceMapperDecisionCache.java
org.x3n0m0rph59.breakout.ResourceMapper.java
org.x3n0m0rph59.breakout.ScoreBoard.java
org.x3n0m0rph59.breakout.ScreenManager.java
org.x3n0m0rph59.breakout.ScreenType.java
org.x3n0m0rph59.breakout.SettingsInputProcessor.java
org.x3n0m0rph59.breakout.SettingsScreen.java
org.x3n0m0rph59.breakout.SoundLayer.java
org.x3n0m0rph59.breakout.SoundLoader.java
org.x3n0m0rph59.breakout.SoundSprite.java
org.x3n0m0rph59.breakout.SpaceBomb.java
org.x3n0m0rph59.breakout.SpriteLoader.java
org.x3n0m0rph59.breakout.SpriteObject.java
org.x3n0m0rph59.breakout.SpriteTuple.java
org.x3n0m0rph59.breakout.Star.java
org.x3n0m0rph59.breakout.Stepable.java
org.x3n0m0rph59.breakout.TextAnimationManager.java
org.x3n0m0rph59.breakout.TextAnimation.java
org.x3n0m0rph59.breakout.Util.java
org.x3n0m0rph59.breakout.Vector.java
org.x3n0m0rph59.breakout.android.AndroidLauncher.java
org.x3n0m0rph59.breakout.client.HtmlLauncher.java
org.x3n0m0rph59.breakout.desktop.DesktopLauncher.java