支持行棋动作:处理移动棋子和吃子逻辑
上一节,我们的棋盘棋子都非常漂亮地呈现在屏幕上了,但还不支持走棋动作。这一节,我们要记让棋子可以支持行棋动作,这将依赖于手势检测 Feature。
检测到用户点击后,我们将结合棋类游戏的棋子移动方案,处理移动棋子和吃子逻辑。
本节提要
- 检测棋盘点击事件
- 将点击坐标换算成棋盘上的棋子位置
- 谁是棋盘点击事件的接管者
- 处理行棋和吃子逻辑
检测棋盘点击
在 Flutter 中,要检测用户的点击、长按、拖拽等操作是很简单的事情,只需要用 GestureDetector 包裹你想要查检测手势的 Widget 即可。
我们修改一下 BoardWidget 的 build 方法,用 GestureDetector 包裹我们的棋盘,将它修改成下边这样:
@overrideWidget build(BuildContext context) {//final boardContainer = Container(width: width,height: height,decoration: BoxDecoration(borderRadius: BorderRadius.circular(5),color: ColorConsts.BoardBackground,),child: CustomPaint(painter: BoardPainter(width: width),foregroundPainter: PiecesPainter(width: width, phase: Phase.defaultPhase()),child: Container(margin: EdgeInsets.symmetric(
支持行棋动作:处理移动棋子和吃子逻辑相关推荐
- Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局
Android实训案例(八)--单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局 阿法狗让围棋突然就被热议了,鸿洋大神也顺势出了篇五子棋单机游戏的视频,我看到了就像膜拜膜拜,就 ...
- Cocos2d-x制作跳棋第三步:棋子动作实现及AI算法思想
上周跟大家分享了Cocos2d-x跳棋制作如何建立工程和界面编写,今天来 跟大家分享一下如何实现棋子相关动作及AI思想. 在跳棋中棋子有两种动作:移动.跳跃. ...
- 【飞行棋】多人游戏-微信小程序开发流程详解
可曾记得小时候玩过的飞行棋游戏,是90后的都有玩过吧,现在重温一下,这是一个可以二到四个人参与的游戏,通过投骰子走棋,一开始靠运气,后面还靠自己选择,谁抢占先机才能赢,还可以和小伙伴们一起玩,狭路相逢 ...
- CVPR 2020满分论文 | FineGym:面向细粒度动作分析的层级化高质量数据集
机器之心发布 作者:邵典等 本文介绍了一个大规模.高质量.层级化标注的细粒度人体动作数据集「FineGym」,研究者来自香港中文大学,目前这项研究已被 CVPR 2020 接收为 oral 论文. 论 ...
- cocos2dx中关于Action动作的相关API的详细介绍
//CCMoveBy 创建一个移动的动作 //参数1:移动到目标坐标所需的时间 //参数2:目标坐标 //支持reverse 可以获取其反向动作 //CCMoveTo 一样的 //CCAct ...
- 3A游戏的必备工艺! 天美是如何将动作捕捉运用到游戏中的?
首发于"腾讯天美工作室群"知乎机构号 去年,<王者荣耀>推出上官婉儿-梁祝皮肤.在这款皮肤的制作过程中,我们对越剧名家茅威涛进行动作捕捉,让"徒弟" ...
- sql server 里面怎么支持数字使用双引号_国查:用中文编写SQL
这两天被 文言(wenyan-lang)刷屏了,这个项目在于使用文言文进行编程,我打算蹭个热度,把年初的作品再捞一捞,即中文SQL. 1. 文言 Wenyan: 吾有一數.曰三.名之曰「甲」. 為是「 ...
- cocos2dx中关于Action动作的相关API的具体介绍
//CCMoveBy 创建一个移动的动作 //參数1:移动到目标坐标所需的时间 //參数2:目标坐标 //支持reverse 能够获取其反向动作 //CCMoveTo 一样的 //CCAct ...
- cocos2dx Action动作解析(1)
bool HelloWorld::init() {// // 1. super init firstif ( !CCLayer::init() ){return false;}CCSprite * s ...
最新文章
- 清华校友斩获ACM博士论文奖!相关研究为自动驾驶新算法奠定基础
- 昨天死线程的问题又找到了别的原因
- Chrome 技术篇-console控制台检测xpath、css唯一性
- Access和Access VBA学习总结
- Spring Cloud 服务安全连接
- 两台linux之间传递文件
- linux如何输出当前时间,如何在linux下输出当前时间
- Dubbo 3.0 前瞻系列 | 2020双11,Dubbo3.0 在考拉的超大规模实践
- Flutter监听网络变化
- 彭国伦Fortran95学习笔记(一)第一至七章
- SpringBoot+Vue实现前后端分离的旅游推荐网站
- 渗透之——触发Easy File Sharing Web Server 7.2 HEAD缓冲区溢出的Python脚本
- SAP注塑行业ERP系统软件的分析
- 闪电Android视频转换器,闪电Android视频转换器
- All matches were filtered out by modular filtering for argument: mysql-community-server
- lr_think_time()
- [个人开发者赚钱五]植入广告等获取收益
- 上行OFDMA接入机制(UL-OFDMA)
- XENOGEARS,延续万年的的永恒之爱(引)
- Shellmo:用于娱乐和教育的Aquatic 3D打印机器人