Android Open Source - DolphinOES Drawer






From Project

Back to project page DolphinOES.

License

The source code is released under:

Apache License

If you think the Android project DolphinOES 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 2015 See AUTHORS file.//from   w w  w  .  j a v a  2  s.co  m
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.sidereal.dolphinoes.behaviors.renderer;

import com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLDrawer;

/** Responsible for drawing in an individual matter an image or set of images
 * over a number of frames. A {@link Drawer} instance is retrieved using
 * {@link DrawerBuilder#build(String)}.
 * 
 * @author Claudiu Bele */
public abstract class Drawer
{

  // region fields

  /** Whether the renderer to use the real raw delta (if applicable) is passed
   * in {@link DrawerBuilder#build(String)} from the builder if the
   * constructor requests the value, otherwise set to false.
   * <p>
   * If the constructor does not require a variable to assign to this field ,
   * the value should not matter. */
  private boolean useRealDeltaTime;

  /** The renderer that the Drawer is attached to. Set in
   * {@link #Drawer(Renderer, String, boolean)}. */
  protected Renderer renderer;

  /** If the Drawer is enabled, it will be drawn. */
  private boolean enabled;

  /** Name of the drawer. Assigned in
   * {@link Renderer#addDrawer(String, DrawerBuilder)}. */
  protected String name;

  // endregion

  // region Constructor
  /** Base constructor for Drawer. In the extensions of a Drawer, all
   * constructors must contain the non-optional parameters, such as the
   * filepath to the animation in {@link SCMLDrawer#SpriterDrawer(Renderer)}
   * and the name of the Drawer, passed in
   * {@link Renderer#addDrawer(String, DrawerBuilder)}.
   * 
   * @param renderer
   * @param name
   *            The name of the drawer.
   * @param useRawDelta */
  public Drawer(Renderer renderer, String name, boolean useRawDelta)
  {

    this.enabled = true;
    this.name = name;
    this.useRealDeltaTime = useRawDelta;
  }

  // endregion

  // region methods

  // region internal
  final void drawInternal(float delta)
  {

    if (enabled && !isOutOfBounds())
      draw(delta);
  }

  public boolean getUseRealDeltaTime(){
    return useRealDeltaTime;
  }
  
  // endregion

  // region abstract

  /** Disposes values that might need to be disposed. It is up to the
   * implementation of Drawer classes to handle this.
   * <p>
   * It is called from
   * {@link com.sidereal.dolphinoes.behaviors.renderer.Renderer#removeDrawer(String)} */
  protected abstract void dispose();

  /** Called from within {@link #drawInternal(float)} by the
   * {@link com.sidereal.dolphinoes.behaviors.renderer.Renderer}.
   * 
   * @param delta
   *            time between frames */
  protected abstract void draw(float delta);

  /** Whether or not the object is out of bounds. If it is, do not render.
   * Handled in {@link #drawInternal(float)}.
   * 
   * @return Whether the object is visible on the screen */
  protected abstract boolean isOutOfBounds();

  // endregion

  // region getters and setters
  public Renderer getRenderer()
  {

    return renderer;
  }

  public void setRenderer(Renderer renderer)
  {

    this.renderer = renderer;
  }

  public boolean isEnabled()
  {

    return enabled;
  }

  public void setEnabled(boolean enabled)
  {

    this.enabled = enabled;
  }

  // endregion

  // endregion methods

}




Java Source Code List

com.sidereal.dolphinoes.architecture.AbstractEvent.java
com.sidereal.dolphinoes.architecture.DebugHandler.java
com.sidereal.dolphinoes.architecture.DolphinOES.java
com.sidereal.dolphinoes.architecture.GameBatch.java
com.sidereal.dolphinoes.architecture.GameBehavior.java
com.sidereal.dolphinoes.architecture.GameObject.java
com.sidereal.dolphinoes.architecture.GameScene.java
com.sidereal.dolphinoes.architecture.Module.java
com.sidereal.dolphinoes.architecture.core.Assets.java
com.sidereal.dolphinoes.architecture.core.Configurable.java
com.sidereal.dolphinoes.architecture.core.Debug.java
com.sidereal.dolphinoes.architecture.core.DolphinOESConfiguration.java
com.sidereal.dolphinoes.architecture.core.GameData.java
com.sidereal.dolphinoes.architecture.core.MouseMovedEvent.java
com.sidereal.dolphinoes.architecture.core.Time.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoadHandler.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoader.java
com.sidereal.dolphinoes.architecture.core.assetload.ClassFileHandleResolver.java
com.sidereal.dolphinoes.architecture.core.assetload.LoadingPercentage.java
com.sidereal.dolphinoes.architecture.core.input.ActionData.java
com.sidereal.dolphinoes.architecture.core.input.ActionEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.ActionEvent.java
com.sidereal.dolphinoes.architecture.core.input.Input.java
com.sidereal.dolphinoes.architecture.core.input.KeyTypedEvent.java
com.sidereal.dolphinoes.architecture.core.input.ScrollEvent.java
com.sidereal.dolphinoes.architecture.core.input.TouchData.java
com.sidereal.dolphinoes.architecture.core.input.TouchEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.TouchEvent.java
com.sidereal.dolphinoes.architecture.pos.Position.java
com.sidereal.dolphinoes.architecture.pos.Positions.java
com.sidereal.dolphinoes.backend.ConcreteGametester.java
com.sidereal.dolphinoes.backend.GameTester.java
com.sidereal.dolphinoes.backend.SceneGameTester.java
com.sidereal.dolphinoes.behaviors.audio.AudioListener.java
com.sidereal.dolphinoes.behaviors.audio.AudioPlayer.java
com.sidereal.dolphinoes.behaviors.events.EventTimer.java
com.sidereal.dolphinoes.behaviors.events.RecurringEvent.java
com.sidereal.dolphinoes.behaviors.input.Clickable.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleEmitter.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleHandler.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteLayout.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteObject.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingHandler.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingMap.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingNode.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingRoute.java
com.sidereal.dolphinoes.behaviors.renderer.DrawerBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.Drawer.java
com.sidereal.dolphinoes.behaviors.renderer.Renderer.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequencePreference.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapDrawer.java
com.sidereal.dolphinoes.behaviors.triggers.Activatable.java
com.sidereal.dolphinoes.behaviors.triggers.Collider.java
com.sidereal.dolphinoes.behaviors.triggers.Hoverable.java
com.sidereal.dolphinoes.ui.MessageBubble.java
com.sidereal.dolphinoes.ui.TextBuilder.java
com.sidereal.dolphinoes.util.BooleanWrapper.java
com.sidereal.dolphinoes.util.DolphinOESException.java
com.sidereal.dolphinoes.util.FloatWrapper.java
com.sidereal.dolphinoes.util.IntWrapper.java
com.sidereal.dolphinoes.util.Utility.java