Android Open Source - LucyTheMoocher State Wall Sliding






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.actors.maincharacter.state;
//from w ww .  j  av  a  2  s  .com
import com.lucythemoocher.Globals.Globals;
import com.lucythemoocher.actors.PlayerCharacter;
import com.lucythemoocher.graphics.Animation;
import com.lucythemoocher.physics.Cinematic;
import com.lucythemoocher.util.Direction;

public class StateWallSliding extends State {

  private float begin_;

  public StateWallSliding(PlayerCharacter pc, Cinematic pos, Animation anim, int dir) {
    super(pc, pos, anim, dir);
    if ( dir_ == Direction.LEFT ) {
      int tab[] = {16,17,18,19};
      anim_.setAnimation(tab, ANIMATION_SPEED);
    } else {
      int tab[] = {12,13,14,15};
      anim_.setAnimation(tab, ANIMATION_SPEED);
    }
    begin_ = Globals.getInstance().getGame().getTime();
  }

  @Override
  public void update() {
    super.update();
    if ( Globals.getInstance().getGame().getTime() - begin_ > WALL_WALKING_PAUSE ) {
      pc_.changeState(new StateFalling(pc_, pos_, anim_, dir_));
    }

    if ( dir_ == Direction.LEFT ) {
      if ( pos_.hasLeftCollision() ) {
        pos_.stay();
      } else {
        pc_.changeState(new StateFalling(pc_, pos_, anim_, dir_));
      }
    } else {
      if ( pos_.hasRightCollision() ) {
        pos_.stay();
      } else {
        pc_.changeState(new StateFalling(pc_, pos_, anim_, dir_));
      }
    }
  }

  @Override
  public void moveUp() {
    if ( dir_ == Direction.LEFT ) {
      if ( pos_.hasLeftCollision() ) {
        pc_.changeState(new StateJumping(pc_, pos_, anim_, Direction.RIGHT));
      }
    } else {
      if ( pos_.hasRightCollision() ) {
        pc_.changeState(new StateJumping(pc_, pos_, anim_, Direction.LEFT));
      }
    }

  }

  @Override
  public void moveLeft() {
    if ( dir_ == Direction.RIGHT ) {
      if ( pos_.hasRightCollision() ) {
        pc_.changeState(new StateJumping(pc_, pos_, anim_, Direction.LEFT));
      }
    }
  }

  @Override
  public void moveRight() {
    if ( dir_ == Direction.LEFT ) {
      if ( pos_.hasLeftCollision() ) {
        pc_.changeState(new StateJumping(pc_, pos_, anim_, Direction.RIGHT));
      }
    }
  }
}




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