package com.game;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.widget.TextView;
public class BackgroundMirror {
private Bitmap backgroundImg, cracked1, cracked2, cracked3, currentBG;
private int thresholdC1,thresholdC2,thresholdC3, thresholdDead;
private int borderSize;
private int gameFPS;
TextView fpsDisplay;
private boolean isShaking;
private int shakeSteps;
private int shakeTime;
private int bgX, bgY;
private int mirrorLife;
public BackgroundMirror(Context context, int imgRef, int cr1, int cr2, int cr3, int life)
{
// Load the image
backgroundImg = BitmapFactory.decodeResource(context.getResources(), imgRef);
cracked1 = BitmapFactory.decodeResource(context.getResources(), cr1);
cracked2 = BitmapFactory.decodeResource(context.getResources(), cr2);
cracked3 = BitmapFactory.decodeResource(context.getResources(), cr3);
currentBG = backgroundImg;
setBorderSize(10);
setGameFPS(0);
shakeSteps = 0;
shakeTime = 10;
bgX = 0;
bgY = 0;
Reset(life);
}
public void Update()
{
if(isShaking)
{
int dir = shakeSteps %2;
bgX = dir*2;
bgY = dir*2;
shakeSteps++;
}
if(shakeSteps >= shakeTime)
{
setShaking(false);
shakeSteps = 0;
bgX = 0;
bgY = 0;
}
}
public void onDraw(Canvas canvas)
{
canvas.drawBitmap(currentBG, bgX, bgY, null);
}
public void HitMirror()
{
setShaking(true);
mirrorLife--;
// Select the apropiate img to draw
ChooseMirrorImage();
}
private void ChooseMirrorImage()
{
if(mirrorLife >= thresholdC1) { currentBG = backgroundImg;}
else if(mirrorLife < thresholdC1 && mirrorLife >= thresholdC2){currentBG = cracked1;}
else if(mirrorLife < thresholdC2 && mirrorLife >= thresholdC3){currentBG = cracked2;}
else {currentBG = cracked3;}
}
public void setBackgroundImg(Bitmap backgroundImg) {
this.backgroundImg = backgroundImg;
}
public Bitmap getBackgroundImg() {
return backgroundImg;
}
public void setBorderSize(int borderSize) {
this.borderSize = borderSize;
}
public int getBorderSize() {
return borderSize;
}
public int getLeftLimit() { return borderSize;}
public int getRightLimit() { return backgroundImg.getWidth()- borderSize;}
public int getTopLimit() { return borderSize;}
public int getBottomLimit() { return backgroundImg.getHeight()- borderSize;}
public void setGameFPS(int gameFPS) {
this.gameFPS = gameFPS;
//fpsDisplay.setText(gameFPS);
}
public int getGameFPS() {
return gameFPS;
}
public void setShaking(boolean isShaking) {
this.isShaking = isShaking;
}
public boolean isShaking() {
return isShaking;
}
public void setMirrorLife(int mirrorLife) {
this.mirrorLife = mirrorLife;
}
public int getMirrorLife() {
return mirrorLife;
}
public void Reset(int life)
{
setShaking(false);
setMirrorLife(life);
// Calculate life thresholds
thresholdC1 = (int) (mirrorLife/1.3);
thresholdC2 = mirrorLife/2;
thresholdC3 = mirrorLife/4;
thresholdDead=0;
ChooseMirrorImage();
}
public boolean Destroyed() { return (boolean) (mirrorLife <= thresholdDead); }
}
|