Android Open Source - ProjectSierra Moving Entity






From Project

Back to project page ProjectSierra.

License

The source code is released under:

GNU General Public License

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

/*
Copyright 2014 Seth Traverse/* w w w . j a v  a2  s. c o  m*/

This file is part of Project Sierra.

Project Sierra is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Project Sierra 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 General Public License for more details.

You should have received a copy of the GNU General Public License
along with Project Sierra.  If not, see <http://www.gnu.org/licenses/>.
 */
package ca.viaware.game.entity;

import ca.viaware.game.entity.events.MoveEvent;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;

import java.util.ArrayList;

public class MovingEntity extends Entity {

  private float dx;
  private float dy;

    private float moveTime;
    private Entity target;
    private boolean moving;

    private ArrayList<MoveEvent> moveEventHandlers;
  
  public MovingEntity(float x, float y, float width, float height, TextureRegion texture) {
    super(x, y, width, height, texture);
        moveEventHandlers = new ArrayList<MoveEvent>();
  }

  @Override
  public void update(float delta) {
    if (moving) {
            moveTime -= delta;
            if (moveTime <= 0) {
                moving = false;
                setDX(0);
                setDY(0);
                setX(target.getX());
                setY(target.getY());
                sendMoveEvent(MoveEvent.ON_COMPLETED);
            } else {
                startMovingTo(target, moveTime / delta);
            }
        }
        float moveX = dx * Gdx.graphics.getDeltaTime();
    float moveY = dy * Gdx.graphics.getDeltaTime();

        if (moveX != 0 || moveY != 0) {
            sendMoveEvent(MoveEvent.ON_MOVE);
        }

    setX(getX() + moveX);
    setY(getY() + moveY);
  }
  
  @Override
  public void render(SpriteBatch batch) {
    super.render(batch);
  }

  public float getDX() {
    return dx;
  }

  public void setDX(float dx) {
    this.dx = dx;
  }

  public float getDY() {
    return dy;
  }

  public void setDY(float dy) {
    this.dy = dy;
  }

    public void addMoveEventHandler(MoveEvent e) {
        moveEventHandlers.add(e);
    }

    private void sendMoveEvent(int type) {
        for (MoveEvent e : moveEventHandlers) {
            switch (type) {
                case MoveEvent.ON_START:
                    e.onStart();
                    break;
                case MoveEvent.ON_MOVE:
                    e.onMove();
                    break;
                case MoveEvent.ON_COMPLETED:
                    e.onCompleted();
                    break;
            }
        }
    }

    public void stopAllMovement() {
        setDX(0);
        setDY(0);
        sendMoveEvent(MoveEvent.ON_COMPLETED);
    }

  public void startMovingTo(Entity other, float speed) {
    if (!moving) sendMoveEvent(MoveEvent.ON_START);
        float xSpeed = (float) (other.getCenteredX() - getCenteredX());
    float ySpeed = (float) (other.getCenteredY() - getCenteredY());

    float factor = (xSpeed * xSpeed) + (ySpeed * ySpeed);

    factor = (float) Math.sqrt(factor);
    factor = speed / factor;

    xSpeed = xSpeed * factor;
    ySpeed = ySpeed * factor;

    setDX(xSpeed);
    setDY(ySpeed);
  }

    public void moveTo(Entity other, float time) {
        sendMoveEvent(MoveEvent.ON_START);
        this.moveTime = time;
        this.target = other;
        moving = true;
    }

}




Java Source Code List

ca.viaware.api.audio.AudioUtils.java
ca.viaware.api.gui.base.VButton.java
ca.viaware.api.gui.base.VFrame.java
ca.viaware.api.gui.base.VLabel.java
ca.viaware.api.gui.base.VListElement.java
ca.viaware.api.gui.base.VList.java
ca.viaware.api.gui.base.VMenuBar.java
ca.viaware.api.gui.base.VMenuItem.java
ca.viaware.api.gui.base.VMenu.java
ca.viaware.api.gui.base.VPanel.java
ca.viaware.api.gui.base.VPopupMenu.java
ca.viaware.api.gui.base.VScrollPane.java
ca.viaware.api.gui.base.VScrollingList.java
ca.viaware.api.gui.base.VTextBox.java
ca.viaware.api.gui.base.event.CloseListener.java
ca.viaware.api.logging.Log.java
ca.viaware.api.net.ConnectionHandlerRunnerThread.java
ca.viaware.api.net.ConnectionHandler.java
ca.viaware.api.net.ConnectionListenerThread.java
ca.viaware.api.parse.CommandParser.java
ca.viaware.api.sql.DatabaseFactory.java
ca.viaware.api.sql.DatabaseResults.java
ca.viaware.api.sql.DatabaseRow.java
ca.viaware.api.sql.Database.java
ca.viaware.api.sql.exceptions.ViaWareSQLException.java
ca.viaware.api.sql.factory.BaseFactory.java
ca.viaware.api.sql.factory.obj.DatabaseObject.java
ca.viaware.api.utils.StringUtils.java
ca.viaware.game.Globals.java
ca.viaware.game.ProjectSierra.java
ca.viaware.game.android.AndroidLauncher.java
ca.viaware.game.assets.TilesetLoader.java
ca.viaware.game.assets.TilesetManager.java
ca.viaware.game.assets.Tileset.java
ca.viaware.game.desktop.DesktopLauncher.java
ca.viaware.game.entities.MapObject.java
ca.viaware.game.entity.Entity.java
ca.viaware.game.entity.MovingEntity.java
ca.viaware.game.entity.events.MoveEvent.java
ca.viaware.game.rendering.Renderable.java
ca.viaware.game.screens.GameScreen.java
ca.viaware.game.world.Map.java
ca.viaware.mapmaker.ConstructionKit.java
ca.viaware.mapmaker.gui.components.SidebarButton.java
ca.viaware.mapmaker.gui.windows.assets.editor.EditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.animation.AnimationEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.clothing.ClothingEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.consumable.ConsumableEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.dialog.DialogEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.effect.EffectEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.intelligence.IntelligenceEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.living.LivingEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.quest.QuestEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.sound.SoundEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.weapon.WeaponEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.editor.worldstatic.StaticEditorWindow.java
ca.viaware.mapmaker.gui.windows.assets.explorer.AssetExplorerWindow.java
ca.viaware.mapmaker.gui.windows.control.ControlWindow.java
ca.viaware.mapmaker.gui.windows.world.editor.DesignPanel.java
ca.viaware.mapmaker.gui.windows.world.editor.SidebarListener.java
ca.viaware.mapmaker.gui.windows.world.editor.SidebarPanel.java
ca.viaware.mapmaker.gui.windows.world.editor.WorldEditorWindow.java
ca.viaware.mapmaker.gui.windows.world.explorer.TopBar.java
ca.viaware.mapmaker.gui.windows.world.explorer.WorldExplorerWindow.java
ca.viaware.mapmaker.gui.windows.world.explorer.WorldListElement.java
ca.viaware.mapmaker.obj.GameManager.java
ca.viaware.mapmaker.obj.asset.AssetManager.java
ca.viaware.mapmaker.obj.asset.AssetType.java
ca.viaware.mapmaker.obj.asset.GameAsset.java
ca.viaware.mapmaker.obj.asset.render.AnimationAsset.java
ca.viaware.mapmaker.obj.asset.render.TextureAsset.java
ca.viaware.mapmaker.obj.asset.sys.DialogAsset.java
ca.viaware.mapmaker.obj.asset.sys.EffectAsset.java
ca.viaware.mapmaker.obj.asset.sys.IntelligenceAsset.java
ca.viaware.mapmaker.obj.asset.sys.QuestAsset.java
ca.viaware.mapmaker.obj.asset.sys.SoundAsset.java
ca.viaware.mapmaker.obj.asset.world.ClothingAsset.java
ca.viaware.mapmaker.obj.asset.world.ConsumableAsset.java
ca.viaware.mapmaker.obj.asset.world.LivingAsset.java
ca.viaware.mapmaker.obj.asset.world.StaticAsset.java
ca.viaware.mapmaker.obj.asset.world.WeaponAsset.java
ca.viaware.mapmaker.obj.world.MapObject.java
ca.viaware.mapmaker.obj.world.WorldManager.java
ca.viaware.mapmaker.obj.world.World.java
ca.viaware.tileset.Globals.java
ca.viaware.tileset.Region.java
ca.viaware.tileset.TilesetCreator.java
ca.viaware.tileset.gui.BasicButton.java
ca.viaware.tileset.gui.LabelAndTextPanel.java
ca.viaware.tileset.gui.RawImagePanel.java
ca.viaware.tileset.gui.RawImageWindow.java
ca.viaware.tileset.gui.SidebarPanel.java
ca.viaware.tileset.gui.listeners.SidebarListener.java
ca.viaware.tileset.utils.FileUtils.java
ca.viaware.tileset.utils.Utils.java