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;
}
}