安卓项目五子棋代码详解(三)
2023-02-18 16:40:40 时间
上一期讲到了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就是偏移右边的位置
相关文章
- C#开发微信公众平台-就这么简单(附Demo)
- 程序员的人性思考(续)
- 恋爱虽易,相处不易:当EntityFramework爱上AutoMapper
- 魅力 .NET:从 Mono、.NET Core 说起
- 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!
- 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践
- 程序员的人性思考(下)
- 2015-写给明年现在的自己
- POCO Controller 你这么厉害,ASP.NET vNext 知道吗?
- Unity依赖注入使用详解
- 初试JqueryEasyUI(附Demo)
- ASP.NET WebApi OWIN 实现 OAuth 2.0
- 程序员的人性思考(上)
- Visual Studio 2015 开发 ASP.NET 5 有何变化?
- 拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?
- Repository 返回 IQueryable?还是 IEnumerable?
- 一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
- 小菜学习设计模式(五)—控制反转(Ioc)
- 掀起你的盖头来:Unit Of Work-工作单元