目录

1. 需求简述

2. 大方向思路

3. 具体实现思路

4. 问题描述

5. 问题解决


1. 需求简述

需求是一个九宫格拼图的游戏,每两张图都可以随意对换,当拖动图片经过被交换图片时,拖动图片不动,被交换图片缓动至原拖动图片位置,可任意次数重复。

2. 大方向思路

对于本需求我做了两层图片,第一层使用GridLayout布局定位置同时方便扩展(4x4,5x5之类,可以随需求千变万化)),第二层用于拖动,通过继承unity的EventTrigger类,使用AddEvent,为Drag,BeginDrag,EndDrag事件添加回调来实现拖拽。

3. 具体实现思路

实现思路是在BeginDrag中定死拖拽的UI(上层图片,确定时下层隐藏),在Drag中判断是否"碰撞"到其他UI,若碰撞,则变换成对方父类的子类,这样就可以通过锚点位置(0,0)直接吸附(也尝试过直接用position,以及其他方法,但最终由于一直对不齐,猜测时因为布局问题导致的,因此才用了这种方法,逻辑清晰、实现简便及方便维护扩展),最后在EndDrag里移动吸附。

对于移动动画,我用了DOTween的DOLocalMove方法,并在OnStart的回调里把下层图片sprite设为nil,这样下层就是一个空白方块(需求),并在EndDrag中将其内容设为上层图片并将上层设为不可见。

4. 问题描述

偶现下层图片恢复不过来的bug

5. 问题解决

个人定义为代码时序问题。Drag和EndDrag同时进行,虽然是在Drag回调中非常前面的位置进行初始化操作,但还是有概率先执行EndDrag中的图片还原,再执行赋空操作,想来应该是Drag中的代码太费时,以致于EndDrag执行完毕后依然未执行完所有代码。

解决办法是把OnStart里的这段代码放到它的上面,虽然是放在OnStart里,但代码运行至此花费时间比想象中长,因此尽量把主要代码提前,以避免时序问题。

九宫格拼图游戏设计,及代码时序问题解决相关推荐

  1. java编写九宫格拼图游戏_九宫格拼图游戏

    九宫格拼图游戏设计文档 一.综合设计目的.条件.任务和内容要求: 1.设计目的 <Windows程序设计>是计算机科学与技术专业本科生的一门学科基础课程.Windows程序以图形用户界面( ...

  2. 基于MATLAB的拼图游戏设计(图文详解,附完整代码)

                                                                               基于MATLAB的拼图游戏设计 内容摘要:MATL ...

  3. android 拼图课程设计,拼图游戏设计_课程设计报告.docx

    Il Il Il Il 学号 1608220203 2016-2017学年 第一学期 <Windows程序设计> 课程设计报告 题目:拼图游戏设计 专业: 班级: 姓名: 指导教师: 成绩 ...

  4. 基于Java实现的Android拼图游戏设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85638665 基于Java实现的Android拼图游戏设计 游戏效果 一.Android ...

  5. 沃拼图游戏软件测试,超完整的手机拼图游戏附测试代码本科毕业论文.doc

    超完整的手机拼图游戏附测试代码本科毕业论文 本 科 毕 业 设 计 设 计 题 目 基于J2ME手机拼图游戏的关键技术研究与实现 姓名(学号) 系 别 专 业 通信工程 导 师 姓 名 二○一二 年 ...

  6. java拼图游戏设计文档_基于JAVA的拼图游戏的设计与实现(含录像)

    基于JAVA的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘  要 在我们日常生活中,有很多的益智类游戏,如七巧 ...

  7. Android拼图游戏设计(包括游戏算法及数据库设计)

    拼图游戏的设计可以分为如下几个部分:① UI设计:② 事件监听,事件处理:③ 游戏逻辑. 用户首先进入登陆注册界面,在登录注册模块可以实现注册登录功能,同时实现修改密码和注销用户的功能,这一功能模块需 ...

  8. 拼图java代码_Java制作智能拼图游戏原理及代码

    今天突发奇想,想做一个智能拼图游戏来给哄女友. 需要实现这些功能 第一图片自定义 第二宫格自定义,当然我一开始就想的是3*3 4*4 5*5,没有使用3*5这样的宫格. 第三要实现自动拼图的功能,相信 ...

  9. 九宫格拼图游戏初版(练练手)

    最近自己看完了java初级篇,课堂上讲的太少了,有那么一会儿灵感蹦出就写了九宫格游戏,只是初版,有些细节未处理,但整体功能都已实现,贴截图: 程序有三个.class文件,依次是程序主体Nine,图片方 ...

最新文章

  1. RHEL6.4换CentOS源
  2. 京东王笑松:7FRESH是“无界零售”理论的业务践行
  3. (31)驱动开发环境配置(VS2010+WDK7600)
  4. Pandas的DataFrame输出截断和省略问题
  5. python123基本数据类型_python 基本数据类型
  6. JavaFX之TableView
  7. 12 种主流编程语言输出“ Hello World ”,你真的都会了吗?
  8. Linux基础——自己的云计算, 把 Linux 当成你的云计算平台
  9. 弹窗php整人_vbs无限弹窗 无敌弹窗整人VBS代码 - 电脑常识 - 服务器之家
  10. 软件推荐:Picasa
  11. 华硕计算机u盘启动不了怎么办,华硕笔记本、台式机无法从U盘启动安装系统的终极解决办法-网络教程与技术 -亦是美网络...
  12. OEM/ODM/OBM
  13. 软件开发测试男友花束,观察这四束花束凭直觉选一束花?测一测别人都在羡慕你的什么?...
  14. Win 11 添加并使用 DOH
  15. 为什么要学计算机排比句,计算机等级考试上机应试技巧
  16. 洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码
  17. 【数据库】数据分析专项练习题库-SQL试卷一
  18. su linux pe,CГіmo encontrar individuos por su DNI en la red? GuГ­a transito a transito
  19. 为什么使用C#开发软件的公司和程序员都很少?
  20. NKD 编译通过,但是eclipse提示报错 linux

热门文章

  1. vue中使用高德地图POI
  2. Python数据分析处理(一)——处理剔除异常值 以全国数学建模(CUMCM 2011 A题)为实例
  3. 多指标面板数据因子分析
  4. oracle 郑阿奇 pdf,Delphi编程教程 (郑阿奇) PDF扫描版
  5. 如何找到appstore下载的系统dmg
  6. c#线程学习之ManualResetEvent和AutoResetEvent的区别!
  7. VMware Esxi补丁包手工执行升级
  8. 高数第一章(函数)练习题
  9. 全新CorelDRAW2023最新版矢量图软件功能简介
  10. python从下载链接下载文件到本地