游戏的交互有两种类型,分别是点击和滑动 ![[Pasted image 20230717162153.png]] 点击的时候,点击相关的坐标位置作为唯一标准,进行传参,去拿到实体 ![[Pasted image 20230717162244.png]] 对应的组件是这个 ![[Pasted image 20230717162323.png]] 判断的先决条件,还有一个布尔,是否可移动 ![[Pasted image 20230717162516.png]] 在前面生成球体的时候,已经把可以点击的球体,这个相关布尔,设置为true的了 ![[Pasted image 20230717162547.png]] 先决条件满足之后,就是具体的业务逻辑了,先整一个最终点击的点,然后第二个点跟最终点击的点,进行比较,看是否可以消除(消除相关是后面的逻辑) ![[Pasted image 20230717162641.png]] 滑动的相关逻辑,如果被触发,是会有相关打印信息的 例如这里是向下滑动了一下 ![[Pasted image 20230717162756.png]] 对应的是这个 ![[Pasted image 20230717162819.png]] 这是游戏交互的逻辑脚本 ![[Pasted image 20230717165431.png]] 更新函数,这里是触发点击交互的 参考[[Entitas——ReactiveSystem<Entity>]] ![[Pasted image 20230717165511.png]] ![[Pasted image 20230717165533.png]] ![[Pasted image 20230717165541.png]] 这里是滑动交互的 这里有一个相对复杂点的,嵌套 三元运算符 ![[Pasted image 20230717165632.png]] ![[Pasted image 20230717165650.png]] 前面的打印提示也是在这里被触发 ![[Pasted image 20230717165734.png]] 滑动的话,是根据前面业务逻辑,得到的方向,去进行x和y的相关处理 ![[Pasted image 20230717165941.png]] 然后,还会有限制x和y的阈值范围,不会超出gameGameBoard的x和y的数量限制 ![[Pasted image 20230717170015.png]] 这里是区域限制的,相关声明定义 ![[Pasted image 20230717170342.png]] 而且只能是滑动一个 ![[Pasted image 20230717170229.png]] 这个是设计思路流程图 ![[Pasted image 20230717171953.png]] 回到点击的逻辑,这里前面的条件都满足,就会触发这个函数,分别是点击前后的两个元素 ![[Pasted image 20230717173031.png]] 可以看到,函数内部,是修改了这个Index索引 ![[Pasted image 20230717173159.png]] 然后,实体对应的view脚本,是这个 ![[Pasted image 20230717173225.png]] 是有相关的监听 ![[Pasted image 20230717173254.png]] 触发的监听函数,调用了DOMove函数,进行位置变更就好 ![[Pasted image 20230717173310.png]] 所以,点击就可以换位置了,功能实现 继续补充设计思路,这里应该是需要整一个容器去存储 ![[Pasted image 20230717173620.png]] 运动交换系统,是这个,然后在这里,初始化创建 ![[Pasted image 20230717174519.png]]