上一节,我们的棋盘棋子都非常漂亮地呈现在屏幕上了,但还不支持走棋动作。这一节,我们要记让棋子可以支持行棋动作,这将依赖于手势检测 Feature。
检测到用户点击后,我们将结合棋类游戏的棋子移动方案,处理移动棋子和吃子逻辑。
本节提要
- 检测棋盘点击事件
- 将点击坐标换算成棋盘上的棋子位置
- 谁是棋盘点击事件的接管者
- 处理行棋和吃子逻辑
检测棋盘点击
在 Flutter 中,要检测用户的点击、长按、拖拽等操作是很简单的事情,只需要用 GestureDetector 包裹你想要查检测手势的 Widget 即可。
我们修改一下 BoardWidget 的 build 方法,用 GestureDetector 包裹我们的棋盘,将它修改成下边这样:
@override
Widget build(BuildContext context) {
//
final boardContainer = Container(
width: width,
height: height,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
color: ColorConsts.BoardBackground,
),
child: CustomPaint(