25游戏画图

来源:互联网 发布:淘宝卖家怎么代购 编辑:程序博客网 时间:2024/06/15 18:39


public class GameView extends SufaceView implements SurfaceHolder.Callback, Runnable {
 private Handler handler;
 private SurfaceHolder holder;
 private Canvas canvas;
 private Bitmap background;
 private boolean isRunning;

 public GameView(Context context, Handler handler){
  super(context);
  this.handler = handler;
  holder = this.getHolder();
  holder.addCallback(this);
 }

 public void initBitmap(){
  background = BitmapFactory.decodeResource(getResource(),R.drawable.background);
 }
 
 public void drawBackground(){
  Rect src = new Rect(0, 0, bgBitmap.getWidth() * 3 / 4,
    2 * bgBitmap.getHeight() / 3);
  Rect dst = new Rect(0, 0, screen_width, screen_height);
  canvas.drawBitmap(bgBitmap, src, dst, null);
 }

 public void onDraw(){
  synchronized (surfaceHolder) {
   try {
    canvas = surfaceHolder.lockCanvas();
    // 画背景
    drawBackground();
    // 画牌
    for (int i = 0; i < 3; i++)
     drawPlayer(i);
    // 地主牌
    for (int i = 0, len = dizhuList.size(); i < len; i++)
     drawCard(dizhuList.get(i));
    // 画按钮( 抢地主,不抢,出牌,不出)
    drawButton();
    // message部分 用3个String存
    drawMessage();
    // 画地主图标
    drawDizhuIcon();
    // 出牌界面(3个地方,用3个vector存)
    drawOutList();

   } catch (Exception e) {
    e.printStackTrace();
   } finally {
    if (canvas != null)
     surfaceHolder.unlockCanvasAndPost(canvas);
   }
  }
 }

 public void run(){
  while (start) {
   if (repaint) {
    onDraw();
    repaint = false;
    Sleep(33);
   }
  }
 }
}

0 0
原创粉丝点击