Android Open Source - LucyTheMoocher State Jumping






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;
// w w  w  . jav a2 s  .  c om
import com.lucythemoocher.actors.PlayerCharacter;
import com.lucythemoocher.graphics.Animation;
import com.lucythemoocher.physics.Cinematic;
import com.lucythemoocher.util.Direction;

public class StateJumping extends State {
  private boolean neverBeenUpdated_;
  public StateJumping(PlayerCharacter pc, Cinematic pos, Animation anim, int dir) {
    super(pc, pos, anim, dir);
    if ( dir_ == Direction.LEFT ) {
      int tab[] = {24,25,26,27};
      anim_.setAnimation(tab, ANIMATION_SPEED);
    } else {
      int tab[] = {20,21,22,23};
      anim_.setAnimation(tab, ANIMATION_SPEED);
    }
    neverBeenUpdated_ = true;
  }

  @Override
  public void update() {
    super.update();
    if (neverBeenUpdated_) { // first update, let's do the jump
      neverBeenUpdated_ = false;
      if ( pos_.hasDownCollision() ||
          pos_.hasLeftCollision()||
          pos_.hasRightCollision() ) {
        pos_.moveFastUp();
      }
    } else { // jump has been done, should we leave the state?
      if ( pos_.hasDownCollision() ) {
        pc_.changeState(new StateNone(pc_, pos_, anim_, dir_));
      } else if ( pos_.speedy() > 0 ) {
        pc_.changeState(new StateFalling(pc_, pos_, anim_, dir_));
      }
    }
  }

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

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

  @Override
  public void moveStop() {
    pos_.moveStop();
  }

  @Override
  public void moveFastLeft() {
    if ( pos_.hasLeftCollision() ) {
      pc_.changeState(new StateWallSliding(pc_, pos_, anim_, dir_));
    }
  }

  @Override
  public void moveFastRight() {
    if ( pos_.hasRightCollision() ) {
      pc_.changeState(new StateWallSliding(pc_, pos_, anim_, dir_));
    }
  }

  @Override
  public void moveDown() {
    pc_.changeState(new StateAttack(pc_, pos_, anim_, dir_));
  }
}




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