package com.imps.tabletennis.tranning;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
public class Timer {
GameView gameView;
private final int totalSecond=12*60;
private Bitmap breakMarkBitmap;
private Bitmap[] numberBitmaps;
private int leftSecond=totalSecond;
float endX=Constant.TIMER_END_X;
float endY=Constant.TIMER_END_Y;
int numberWidth;
int numberHeight;
int breakMarkWidth;
int breakMarkHeight;
public Timer(GameView gameView,Bitmap breakMarkBitmap,Bitmap[] numberBitmaps)
{
this.gameView=gameView;
this.breakMarkBitmap=breakMarkBitmap;
this.numberBitmaps=numberBitmaps;
numberWidth=numberBitmaps[0].getWidth();
numberHeight=numberBitmaps[0].getHeight();
breakMarkWidth=breakMarkBitmap.getWidth();
breakMarkHeight=breakMarkBitmap.getHeight();
}
public void drawSelf(Canvas canvas,Paint paint)
{
int second=this.leftSecond%60;
int minute=this.leftSecond/60;
drawNumberBitmap(second,numberBitmaps,endX+Constant.X_OFFSET,endY+Constant.Y_OFFSET,canvas, paint);
int secondLength=(second+"").length()<=1 ? (second+"").length()+1 : (second+"").length();
float breakMarkX=endX-secondLength*numberWidth-breakMarkWidth;
float breakMarkY=endY;
canvas.drawBitmap(breakMarkBitmap, breakMarkX+Constant.X_OFFSET, breakMarkY+Constant.Y_OFFSET,paint);//����ʱ��ָ���ͼƬ
float miniteEndX=breakMarkX;
float miniteEndY=endY;
drawNumberBitmap(minute,numberBitmaps,miniteEndX+Constant.X_OFFSET,miniteEndY+Constant.Y_OFFSET,canvas, paint);
}
public void subtractTime(int second)
{
if(this.leftSecond>0)
{
this.leftSecond-=second;
}
else
{
gameView.overGame();
}
}
public void drawNumberBitmap(int number,Bitmap[] numberBitmaps,float endX,float endY,Canvas canvas,Paint paint)
{
String numberStr=number+"";
if(number<10){
numberStr="0"+numberStr;
}
for(int i=0;i<numberStr.length();i++)
{
char c=numberStr.charAt(i);
canvas.drawBitmap
(
numberBitmaps[c-'0'],
endX-numberWidth*(numberStr.length()-i),
endY,
paint
);
}
}
public int getLeftSecond() {
return leftSecond;
}
}