- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unityD学习之纯代码实现功能
????????由于这次的图集是本人自己抠出来,自动Slice后,最顶部会有一小块多余的像素,可以直接删除,也不用改名字,直接保存就好。
?
????? 为了方便布局,这里给大家一个参数的设定,在导入设置里设定Pixels To Units 为132,后面脚本中的设置都基于这个数值
?
?
?
?????? 切完之后,把图集丢到Resources文件夹中,Resources文件夹在Unity里有特殊的作用,可以在脚本中通过Resources类进行访问,接着拖出分别最后一张背景Sprite、倒数第二张方格Sprite,第一张卡片Sprite,将方格Sprite的排序层置于背景Sprite上层,而卡片Sprite置于方格Sprite上层。以此是 卡片-方格-背景。
?
?
???????
????? 接着创建一个名为Card的脚本,什么都不用写,拖拽到卡片Sprite上。将方格Sprite和卡片Sprite做成预置,完成之后,在层次面板上删除这两个预置,OK,开始代码部分,
????? 首先,我们要做好大的背景区域,通过脚本创建16个小方块格子,通过不精准的计算,得出第一个方格的起始点的位置应该是(-1.65,1.65),每个方格的间距是1.1,为了编写代码的方便,我们将这些数据存放在一个帮助类(HelpPosition)中,代码如下:
?????? 方法GetPosVector2用于根据xy下标,返回该索引处的卡片的位置。文章来自【狗刨学习网】
?????? 做好帮助类之后,我们来实现对16个格子的布局,其实就是做一个潜逃循环,计算卡片的位置即可代码如下:
?????? 需要注意的是,这里外层循环的x,是行数,y是列数,传递下标的时候,也按照这个顺序,第一个索引为行数,第二个索引为列数。完成之后拖拽脚本到背景Sprite上,运行游戏后棋盘格子就已经出来了。
?
?
接下来我们创建一个GameManager脚本,挂载到背景Sprite上,用于控制游戏的流程。成员字段如下:
?
?????? Start中,生成两个卡片[CreateCard方法],Update中主要是相应键盘的操作[Movexx方法],实现如下:
?????? CreateCard的主要实现思路是,每次生成一个卡片时计算当前数组中的卡牌数,如大于等于16则游戏重置;否则随机生成坐标点,判断当前坐标处位置是否有卡片存在,知道找到空余位置,并实例化卡片对象,通过对时间的数学运算,调用Card类中的方法,生成2/4卡片。
ResetGame方法的实现
剩下的,就是响应鼠标输入,移动卡片了,以向上移动为例,主要逻辑思路如下:
1 遍历卡片数组,寻找一个存在的卡片2每寻找到一个存在的卡片,沿着移动方向上每一个格子做判断,看当前格子中是否有卡片,找到离自己最近的卡片做如下判断
如果最近的卡片与本身卡片数值一致,则做Card类中的(Merge方法)合并操作;否则,则将卡片移到该格子的临近格子
---注意沿着移动方向,比如向上移动,则处于第四行的卡片向第三行,第二行,第一行依次查找遍历。向上方向的代码实现如下:
??????? 根据上面的逻辑,完成四个方向上的操作即可,接下来完成的是Card类??????? card类中,通过对Resources文件夹中的Sprites进行读取,根据卡片的编号,更改SpriteRenderer,从而改变2 4 8 卡片的数值,同时也可以通过编号进行记分功能,成员字段如下:
?????? 在Awake方法里,对Sprites数组进行赋值
?????? [code]csharpcode:
???????? ?void Awake() {
????????? CardSprites = Resources.LoadAll(fileName);
????????? }
???????? 生成卡片时有个放大的动画,封装到一个方法ScaleSelf中[code]csharpcode:void ScaleSelf() { iTween.ScaleFrom(gameObject,Vector3.zero,.5f); }?????????
??????? 生成卡片的方法及合并的方法,逻辑基本一致,改变_currentIndex,更改SpriteRenderer组件
至此,2048小游戏的核心功能全部实现完毕~
您可能关注的文档
- P+Q群逆例子.doc
- PaperTwo试卷(题).doc
- PAPPSEBSgMAH共混物的相容性研究.doc
- PartMultipleChoice.docx
- Pb编写webservice数据库连接性能研究.doc
- PC电脑相关词汇.doc
- Petrel断层连接图解.doc
- Photoshop路径线条的圆滑处理.docx
- php配置文件参数详解.doc
- PICOOCLatin评测.docx
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)