安卓项目五子棋代码详解(三)

本文为作者原创,允许转载,不过请在文章开头明显处注明链接和出处!!! 谢谢配合~
作者:stars-one
链接:https://www.cnblogs.com/stars-one/p/7413254.html

本篇大约有1201个字,阅读预计需要1.50分钟


 

上一期讲到了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就是偏移右边的位置

 

posted @   Stars-one  阅读(1144)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示