Android Open Source - nadia Player






From Project

Back to project page nadia.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project nadia 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

/*
 * Player.java//from   w  ww.  j av  a  2  s. c om
 * 
 * Copyright (c) 2013, Emmanuel Arana Corzo. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301  USA
 */

package com.redarctic.nadia.baseengine.character;

import android.graphics.Canvas;
import android.graphics.Point;

import com.redarctic.nadia.ext.MathHelper;
import com.redarctic.nadia.ext.simplesignalslot.ISlotProvider;
import com.redarctic.nadia.baseengine.sprite.AnimatedSprite;
import com.redarctic.nadia.baseengine.sprite.AnimationKey;
import com.redarctic.nadia.baseengine.tileengine.Camera;
import com.redarctic.nadia.baseengine.tileengine.Camera.CameraMode;
import com.redarctic.nadia.collision.Rectangle;

/**
 * Player
 * This class is the character in the world map, this does not involves anyhow
 * character status, and battle related character 
 */
public class Player implements ISlotProvider {
  Camera camera;
  Point screenSize;
  AnimatedSprite sprite;
  
  /**
   * getCamera
   * Returns the camera attached to the player in the world
   * @return Camera
   * @see Camera 
   */
  public Camera getCamera() {
    return camera;
  }
  public void setCamera(Camera camera) {
    this.camera = camera;
  }
  public AnimatedSprite getSprite() {
    return sprite;
  }
  
  public Player(Point screenSize, AnimatedSprite sprite) {
    this.screenSize = screenSize;
    Rectangle screenRectangle = new Rectangle(
        0, 
        0, 
        this.screenSize.x, 
        this.screenSize.y);
    this.camera = new Camera(screenRectangle);
    this.sprite = sprite;
  }
  
  public void zoomIn() {
    this.camera.zoomIn();
    if (this.camera.getCameraMode() == CameraMode.FOLLOW) {
      this.camera.lockToSprite(this.sprite);
    }
  }
  
  public void zoomOut() {
    this.camera.zoomOut();
    if (this.camera.getCameraMode() == CameraMode.FOLLOW) {
      this.camera.lockToSprite(this.sprite);
    }
  }
  
  public void moveUp() {
    Point motion = new Point();
    this.sprite.setCurrentAnimation(AnimationKey.UP);
    motion.y = -1;
    
    movementFixer(motion);
  }
  
  public void moveDown() {
    Point motion = new Point();
    this.sprite.setCurrentAnimation(AnimationKey.DOWN);
    motion.y = 1;
    
    movementFixer(motion);
  }
  
  public void moveLeft() {
    Point motion = new Point();
    this.sprite.setCurrentAnimation(AnimationKey.LEFT);
    motion.x = -1;
    
    movementFixer(motion);
  }
  
  public void moveRight() {
    Point motion = new Point();
    this.sprite.setCurrentAnimation(AnimationKey.RIGHT);
    motion.x = 1;
    
    movementFixer(motion);
  }
  
  public void stopAnimate() {
    this.sprite.setAnimating(false);
  }
  
  private void movementFixer(Point motion) {
    if (!motion.equals(0, 0)) {
      this.sprite.setAnimating(true);
      motion = MathHelper.normalize(motion);
      
      Point newPosition = new Point(this.sprite.getPosition());
      newPosition.x += motion.x * this.sprite.getSpeed();
      newPosition.y += motion.y * this.sprite.getSpeed();
      this.sprite.setPosition(newPosition);
      this.sprite.lockToMap();
      
      if (this.camera.getCameraMode() == CameraMode.FOLLOW)
        this.camera.lockToSprite(this.sprite);
    }
    else {
      sprite.setAnimating(false);
    }
  }
  
  public void update(Canvas canvas) {
    this.camera.update(canvas);
    this.sprite.update(canvas);
    
    Point motion = new Point(0, 0);
    movementFixer(motion);
  }
  
  public void drawMe(Canvas canvas) {
    this.sprite.drawMe(canvas, this.camera);
  }
}




Java Source Code List

com.ashokgelal.samaya.DateTimeFormatter.java
com.ashokgelal.samaya.DateTimeInterval.java
com.ashokgelal.samaya.DateTimeParser.java
com.ashokgelal.samaya.DateTime.java
com.ashokgelal.samaya.ModelUtil.java
com.ashokgelal.samaya.Samaya.java
com.ashokgelal.samaya.TimeSpan.java
com.ashokgelal.samaya.ToStringUtil.java
com.ashokgelal.samaya.Util.java
com.redarctic.nadia.baseengine.BaseGameState.java
com.redarctic.nadia.baseengine.ColorPallete.java
com.redarctic.nadia.baseengine.DrawableGameComponent.java
com.redarctic.nadia.baseengine.DrawableObject.java
com.redarctic.nadia.baseengine.GameComponent.java
com.redarctic.nadia.baseengine.GameStateManager.java
com.redarctic.nadia.baseengine.GameState.java
com.redarctic.nadia.baseengine.GameSurfaceView.java
com.redarctic.nadia.baseengine.GameSurface.java
com.redarctic.nadia.baseengine.SpriteFont.java
com.redarctic.nadia.baseengine.Sprite.java
com.redarctic.nadia.baseengine.character.BaseModifier.java
com.redarctic.nadia.baseengine.character.Classes.java
com.redarctic.nadia.baseengine.character.FormulaModifierException.java
com.redarctic.nadia.baseengine.character.Player.java
com.redarctic.nadia.baseengine.item.ArmorLocation.java
com.redarctic.nadia.baseengine.item.Armor.java
com.redarctic.nadia.baseengine.item.BaseItem.java
com.redarctic.nadia.baseengine.item.ItemManager.java
com.redarctic.nadia.baseengine.item.ItemType.java
com.redarctic.nadia.baseengine.item.Shield.java
com.redarctic.nadia.baseengine.item.Weapon.java
com.redarctic.nadia.baseengine.item.WeaponsType.java
com.redarctic.nadia.baseengine.sprite.AnimatedSprite.java
com.redarctic.nadia.baseengine.sprite.AnimationException.java
com.redarctic.nadia.baseengine.sprite.AnimationKey.java
com.redarctic.nadia.baseengine.sprite.Animation.java
com.redarctic.nadia.baseengine.tileengine.Camera.java
com.redarctic.nadia.baseengine.tileengine.Engine.java
com.redarctic.nadia.baseengine.tileengine.MapLayer.java
com.redarctic.nadia.baseengine.tileengine.TileException.java
com.redarctic.nadia.baseengine.tileengine.TileMap.java
com.redarctic.nadia.baseengine.tileengine.Tile.java
com.redarctic.nadia.baseengine.tileengine.Tileset.java
com.redarctic.nadia.baseengine.world.Level.java
com.redarctic.nadia.baseengine.world.World.java
com.redarctic.nadia.collision.Circle.java
com.redarctic.nadia.collision.CollisionPolygon.java
com.redarctic.nadia.collision.ConvexPolygonException.java
com.redarctic.nadia.collision.Rectangle.java
com.redarctic.nadia.controls.ButtonPad.java
com.redarctic.nadia.controls.DirectionalPad.java
com.redarctic.nadia.controls.menu.CharacterDialog.java
com.redarctic.nadia.controls.menu.ControlBorder.java
com.redarctic.nadia.controls.menu.ControlManager.java
com.redarctic.nadia.controls.menu.Control.java
com.redarctic.nadia.controls.menu.Label.java
com.redarctic.nadia.controls.menu.LeftRightSelector.java
com.redarctic.nadia.controls.menu.LinkLabel.java
com.redarctic.nadia.controls.menu.Menu.java
com.redarctic.nadia.controls.menu.PictureBox.java
com.redarctic.nadia.controls.menu.SimpleConversation.java
com.redarctic.nadia.ext.MathHelper.java
com.redarctic.nadia.ext.StringHelper.java
com.redarctic.nadia.ext.simplesignalslot.ISignalProvider.java
com.redarctic.nadia.ext.simplesignalslot.ISlotProvider.java
com.redarctic.nadia.ext.simplesignalslot.PrimitiveWrapper.java
com.redarctic.nadia.ext.simplesignalslot.SignalSlotMap.java
com.redarctic.nadia.ext.simplesignalslot.SignalSlotPair.java
com.redarctic.nadia.ext.simplesignalslot.SlotProviderMethodPair.java