Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

package com.gebauz.pingK.game;

import com.gebauz.framework.util.Sprite2D;
import com.gebauz.pingK.R;

public class BallWarp
{
        private GameLogic mGameLogic = null;
       
        private Sprite2D mSprite = new Sprite2D();
       
        private float mSizes[] =
        {
                GameConsts.BALL_WARP_SIZE_0,
                GameConsts.BALL_WARP_SIZE_1,
                GameConsts.BALL_WARP_SIZE_2,
                GameConsts.BALL_WARP_SIZE_3,
        };
       
        private float mAlphas[] =
        {
                GameConsts.BALL_WARP_ALPHA_0,
                GameConsts.BALL_WARP_ALPHA_1,
                GameConsts.BALL_WARP_ALPHA_2,
                GameConsts.BALL_WARP_ALPHA_3,
        };
       
        public BallWarp(GameLogic gameLogic)
        {
                mGameLogic = gameLogic;
               
                mSprite.init(R.drawable.warp);
                mSprite.setColor(GameConsts.PINGK_COLOR);
               
                mSprite.x = GameConsts.VIRTUAL_SCREEN_WIDTH/2.0f;
                mSprite.y = mGameLogic.getVirtualPlayFieldHeight()/2.0f;
        }
       
        public void update(float deltaTime)
        {
                mSprite.update(deltaTime);
               
                for (int i = 0; i < 4; i++)
                {
                        if (mAlphas[i] < 0.0f)
                                continue;
                       
                        mSizes[i] += GameConsts.BALL_WARP_GROWTH * deltaTime;
                        mAlphas[i] -= GameConsts.BALL_WARP_FADE * deltaTime;
                }
        }
       
        public void render()
        {
                for (int i = 0; i < 4; i++)
                {
                        if (mAlphas[i] < 0.0f)
                                continue;
                       
                        mSprite.w = mSizes[i];
                        mSprite.h = mSizes[i];
                       
                        mSprite.pivotX = mSprite.w/2.0f;
                        mSprite.pivotY = mSprite.h/2.0f;
                       
                        mSprite.setColor(GameConsts.PINGK_COLOR.x, GameConsts.PINGK_COLOR.y, GameConsts.PINGK_COLOR.z, mAlphas[i]);
                       
                        mSprite.render();
                }
        }
       
        public void reset()
        {
                mSizes[0] = GameConsts.BALL_WARP_SIZE_0;
                mSizes[1] = GameConsts.BALL_WARP_SIZE_1;
                mSizes[2] = GameConsts.BALL_WARP_SIZE_2;
                mSizes[3] = GameConsts.BALL_WARP_SIZE_3;

                mAlphas[0] = GameConsts.BALL_WARP_ALPHA_0;
                mAlphas[1] = GameConsts.BALL_WARP_ALPHA_1;
                mAlphas[2] = GameConsts.BALL_WARP_ALPHA_2;
                mAlphas[3] = GameConsts.BALL_WARP_ALPHA_3;             
        }

}