zoukankan      html  css  js  c++  java
  • 安卓项目五子棋代码详解(三)

    上一期讲到了drawBoard()方法,这一期便是讲解drawPiece()方法,这一期逻辑需要结合第一期所讲的获取棋子坐标一起理解,看多几遍理清思路便好。

    正文开始——

    棋子的个数有很多,而且每一个都是有着对应的坐标,这就需要我们给棋子弄一个坐标集合,按照颜色分为两种,一种是白色棋子坐标集合,另外一种则是黑色棋子坐标,这样可以方便之后判断输赢

    private ArrayList<Point> Whitearray = new ArrayList<Point>(); //白棋坐标集合
    private ArrayList<Point> Blackarray = new ArrayList<Point>(); //黑紫坐标集合


    之后便是drawPiece()方法

    private void drawPiece(Canvas canvas) {
            for(int i=0;i<Whitearray.size();i++){
                Point whitePoint = Whitearray.get(i);
                
                canvas.drawBitmap(Whitepiece,(whitePoint.x+(1-ratioPieceOfLineheight)/2)*mLineHeight,(whitePoint.y+(1-ratioPieceOfLineheight)/2)*mLineHeight,null);
            }
            for(int i=0;i<Blackarray.size();i++){
                Point blackPoint = Blackarray.get(i);
                
                canvas.drawBitmap(Blackpiece,(blackPoint.x+(1-ratioPieceOfLineheight)/2)*mLineHeight,(blackPoint.y+(1-ratioPieceOfLineheight)/2)*mLineHeight,null);
            }
        }

    这个方法中,利用for循环,调用数组的get()方法获得棋子的坐标,之后再是调用canvas的drawBitmap()方法将棋子画出

      这里所用的方法参数为

    drawBitmap(Bitmap bitmap, float left, float top, Paint paint)

    bitmap就是图片,left就是偏移左边的位置,top就是偏移右边的位置

  • 相关阅读:
    传球接力
    业务办理
    P2077 红绿灯
    【UR #4】元旦激光炮
    P1939 【模板】矩阵加速(数列)
    #82. 【UR #7】水题生成器
    Visible Trees HDU
    创始人的领导力和合伙人选择
    面向对象笔试题练习一
    MicroPython+北斗+GPS+GPRS:TPYBoardv702短信功能使用说明
  • 原文地址:https://www.cnblogs.com/stars-one/p/7413254.html
Copyright © 2011-2022 走看看