Example #1
0
 public SpriteActionDefinition(SpriteActionDefinition copy)
 {
     mRow          = copy.mRow;
     mBeginColumn  = copy.mBeginColumn;
     mEndColumn    = copy.mEndColumn;
     mUpdatePeriod = copy.mUpdatePeriod;
     mShouldLoop   = copy.mShouldLoop;
 }
 public SpriteActionDefinition(SpriteActionDefinition copy)
 {
     mRow = copy.mRow;
     mBeginColumn = copy.mBeginColumn;
     mEndColumn = copy.mEndColumn;
     mUpdatePeriod = copy.mUpdatePeriod;
     mShouldLoop = copy.mShouldLoop;
 }
    private Sprite[][] mSpriteElements = null; // The actual computed sprite elements

    #endregion Fields

    #region Methods

    /// <summary>
    /// Sets the sprite animation aciton. The manager maintains a ** LINK ** to the passed
    /// in action parameter!! This means, any changes in the action parameter will alter
    /// the behavior of the sprite animation (e.g., you can increase the animaiton rate by
    /// decrease the mUpdatePeriod
    /// </summary>
    /// <param name='anim'>
    /// The desired animation.
    /// </param>
    public void SetSpriteAnimationAciton(SpriteActionDefinition anim)
    {
        mCurrentSpriteAction = anim;
        if (mCurrentSpriteAction.mShouldLoop) {
            // make sure being is always smaller then end
            if (mCurrentSpriteAction.mEndColumn < mCurrentSpriteAction.mBeginColumn) {
                int tmp = mCurrentSpriteAction.mEndColumn;
                mCurrentSpriteAction.mEndColumn = mCurrentSpriteAction.mBeginColumn;
                mCurrentSpriteAction.mBeginColumn = tmp;
            }
            mCurrentActionColumnDelta = 1;
        } else {
            if (mCurrentSpriteAction.mEndColumn > mCurrentSpriteAction.mBeginColumn)
                mCurrentActionColumnDelta = 1;
            else
                mCurrentActionColumnDelta = 1;
        }
        mCurrentActionColumn = mCurrentSpriteAction.mBeginColumn;
        mCurrentActionRow = mCurrentSpriteAction.mRow;
        mCurrentActionLastUpdateTime = Time.realtimeSinceStartup;

        if (null != mSpriteElements)
            mMyRenderer.sprite = mSpriteElements[mCurrentActionRow][mCurrentActionColumn];
    }
Example #4
0
 /// <summary>
 /// Sets the sprite animation aciton. The manager maintains a ** LINK ** to the passed
 /// in action parameter!! This means, any changes in the action parameter will alter
 /// the behavior of the sprite animation (e.g., you can increase the animaiton rate by
 /// decrease the mUpdatePeriod
 /// </summary>
 /// <param name='anim'>
 /// The desired animation.
 /// </param>
 public void SetSpriteAnimationAciton(SpriteActionDefinition anim)
 {
     mCurrentSpriteAction = anim;
     if (mCurrentSpriteAction.mShouldLoop) {
         // make sure being is always smaller then end
         if (mCurrentSpriteAction.mEndColumn < mCurrentSpriteAction.mBeginColumn) {
             int tmp = mCurrentSpriteAction.mEndColumn;
             mCurrentSpriteAction.mEndColumn = mCurrentSpriteAction.mBeginColumn;
             mCurrentSpriteAction.mBeginColumn = tmp;
         }
         mCurrentActionColumnDelta = 1;
     } else {
         if (mCurrentSpriteAction.mEndColumn > mCurrentSpriteAction.mBeginColumn)
             mCurrentActionColumnDelta = 1;
         else
             mCurrentActionColumnDelta = -1;
     }
     mCurrentActionColumn = mCurrentSpriteAction.mBeginColumn;
     mCurrentActionLastUpdateTime = Time.realtimeSinceStartup;
     Vector2 offset = mSpriteSheetMaterial.mainTextureOffset;
     offset.x = ComputeXOffset(mCurrentActionColumn);
     offset.y = ComputeYOffset(mCurrentSpriteAction.mRow);
     mSpriteSheetMaterial.mainTextureOffset = offset;
 }