public void tDraw(Canvas canvas)
{
// p 초기화
Paint p1 = new Paint(); // 남은 시간 그리기
p1.setColor(Color.RED);
tWidth = tWidth - 2;
r.set(0, 0, tWidth, 20);
canvas.drawRect(r,p1);
}

while(runGame){
while(!endTime()){
//Log.i("Log","endTime: "+(endTime()));
canvas = holder.lockCanvas(); // canvas를 잠그고 버퍼 할당
try{
synchronized(holder) // 동기화 유지
{
tDraw(canvas); // 여기서 tDraw 호출
}
}finally // 버퍼 작업이 끝나면
{
if(canvas != null) // 버퍼의 내용을  View에 전송
holder.unlockCanvasAndPost(canvas);
}
}
} // 쓰레드 while문 끝
}

어제부터 붙잡다가 도저히 무엇을 잘못했는지 모르겠어서 질문올립니다 ㅠㅠ
저는 draw함수가 호출될 때마다 rect의 right값을 1씩 빼서 그림을 그리려고 하였습니다.
그런데 결과는 원래 rect right 가 200이라고 하면 199, 200, 199, 200....이런씩으로
그려집니다. 분명 tWidth는 클래스에 선언된 변수로 초기화도 전혀 되지 않을텐데..
그리고 로그값을 찍어보면 분명 tWidth는 착실하게 1씩 빼지고 있습니다.
도저히 무엇이 문제인지 모르겠습니다.ㅜㅜㅜㅜㅜㅜㅜ
제가 무엇을 잘못한걸까요ㅠㅠ?