九宫格拼图游戏设计,及代码时序问题解决
目录
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里,但代码运行至此花费时间比想象中长,因此尽量把主要代码提前,以避免时序问题。
九宫格拼图游戏设计,及代码时序问题解决相关推荐
- java编写九宫格拼图游戏_九宫格拼图游戏
九宫格拼图游戏设计文档 一.综合设计目的.条件.任务和内容要求: 1.设计目的 <Windows程序设计>是计算机科学与技术专业本科生的一门学科基础课程.Windows程序以图形用户界面( ...
- 基于MATLAB的拼图游戏设计(图文详解,附完整代码)
基于MATLAB的拼图游戏设计 内容摘要:MATL ...
- android 拼图课程设计,拼图游戏设计_课程设计报告.docx
Il Il Il Il 学号 1608220203 2016-2017学年 第一学期 <Windows程序设计> 课程设计报告 题目:拼图游戏设计 专业: 班级: 姓名: 指导教师: 成绩 ...
- 基于Java实现的Android拼图游戏设计
资源下载地址:https://download.csdn.net/download/sheziqiong/85638665 基于Java实现的Android拼图游戏设计 游戏效果 一.Android ...
- 沃拼图游戏软件测试,超完整的手机拼图游戏附测试代码本科毕业论文.doc
超完整的手机拼图游戏附测试代码本科毕业论文 本 科 毕 业 设 计 设 计 题 目 基于J2ME手机拼图游戏的关键技术研究与实现 姓名(学号) 系 别 专 业 通信工程 导 师 姓 名 二○一二 年 ...
- java拼图游戏设计文档_基于JAVA的拼图游戏的设计与实现(含录像)
基于JAVA的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘 要 在我们日常生活中,有很多的益智类游戏,如七巧 ...
- Android拼图游戏设计(包括游戏算法及数据库设计)
拼图游戏的设计可以分为如下几个部分:① UI设计:② 事件监听,事件处理:③ 游戏逻辑. 用户首先进入登陆注册界面,在登录注册模块可以实现注册登录功能,同时实现修改密码和注销用户的功能,这一功能模块需 ...
- 拼图java代码_Java制作智能拼图游戏原理及代码
今天突发奇想,想做一个智能拼图游戏来给哄女友. 需要实现这些功能 第一图片自定义 第二宫格自定义,当然我一开始就想的是3*3 4*4 5*5,没有使用3*5这样的宫格. 第三要实现自动拼图的功能,相信 ...
- 九宫格拼图游戏初版(练练手)
最近自己看完了java初级篇,课堂上讲的太少了,有那么一会儿灵感蹦出就写了九宫格游戏,只是初版,有些细节未处理,但整体功能都已实现,贴截图: 程序有三个.class文件,依次是程序主体Nine,图片方 ...
最新文章
- RHEL6.4换CentOS源
- 京东王笑松:7FRESH是“无界零售”理论的业务践行
- (31)驱动开发环境配置(VS2010+WDK7600)
- Pandas的DataFrame输出截断和省略问题
- python123基本数据类型_python 基本数据类型
- JavaFX之TableView
- 12 种主流编程语言输出“ Hello World ”,你真的都会了吗?
- Linux基础——自己的云计算, 把 Linux 当成你的云计算平台
- 弹窗php整人_vbs无限弹窗 无敌弹窗整人VBS代码 - 电脑常识 - 服务器之家
- 软件推荐:Picasa
- 华硕计算机u盘启动不了怎么办,华硕笔记本、台式机无法从U盘启动安装系统的终极解决办法-网络教程与技术
-亦是美网络...
- OEM/ODM/OBM
- 软件开发测试男友花束,观察这四束花束凭直觉选一束花?测一测别人都在羡慕你的什么?...
- Win 11 添加并使用 DOH
- 为什么要学计算机排比句,计算机等级考试上机应试技巧
- 洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码
- 【数据库】数据分析专项练习题库-SQL试卷一
- su linux pe,CГіmo encontrar individuos por su DNI en la red? GuГa transito a transito
- 为什么使用C#开发软件的公司和程序员都很少?
- NKD 编译通过,但是eclipse提示报错 linux