文档章节

2048小游戏开发过程以及感想

 渐行渐远渐无书
发布于 2016/07/24 20:46
字数 590
阅读 26
收藏 0

2048小游戏开发过程以及感想
以前我就是一个忠实的2048粉丝,曾一度沉迷于其中,然而最好的战绩却也是止步于两个4096,这让我羞愧不已。
今日,我利用了一些空些时间,整理了一下思路,创作了这个小游戏,虽然功能不是很完善,但是麻雀虽小五脏俱全。
一开始我便确定了整体的界面:分为4*4方格,然后定义每个方格(UIView)中的属性:用于显示数字的UILabel和一个自定义的NSObject对象State(里面就一个BOOL值用于确定方格 是否有值)。
然后创建三类数组,一类是整体数组,存放所有的方格。还有一类就是方向数组,存放每个方向的方格,方便手势的响应。最后一类,就是用来临时取值赋值的临时数组。
整理好思路后,我便开始了动手,创建类,封装函数,模块化处理。把老师上课的内容进行融会贯通,身体力行的去理解并掌握。
视图创建完毕后,我碰到第一个BUG,数组没有值,我冥思苦想,反复检查代码,发现,我没有初始化数组。- -!
解决掉这个拦路虎之后,我开始写逻辑判断。添加手势识别,对每个手势进行不同的处理。

1 移除临时数组中所有元素
2 循环取出方向数组中的元素
3 执行对应的手势方向平移操作
4 判断是否可以相加
5 修改BOOL值
6 调用随机函数 随机产生数字(只在没有数字的方格产生)

到这,我发现了第二个问题,state值 始终为空 我也不知为何,于是我删除了这个属性,直接在方格类中添加了一个BOOL变量来判断

然后,果不出其然,成功了。
虽然这是一个很简单的小程序,但是,这对我的逻辑能力和时间能力是一个很大的提升,同时也让我看到了自己的不足和缺点。

砥砺前行,风不会停歇。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 1
码字总数 590
作品 0
娄底
私信 提问
40+ 行 JS 代码打造你的 2048 游戏 AI

2048 游戏是什么? 2048 游戏如下图所示,它由一个 4*4 共 16 个方块组成。玩家可以通过「上下左右」四个方向操纵方块滑动,滑动时两个相邻且数值相同的方块会合并,新的方块,数值为两者之和...

2018/01/11
0
0
2 的威力,Linux 的威力:终端中的 2048

正在寻找基于终端的游戏来打发时间么?来看看 2048-cli 吧。 你好,欢迎来到今天的 Linux 命令行玩具日历。每天,我们会为你的终端带来一个不同的玩具:它可能是一个游戏或任何简单的消遣,可...

作者: Jason Baker
01/16
0
0
pygame开发2048游戏

背景 最近入手新游戏:《Threes》,2048的前身,难度比2048大,这个游戏的命运比较悲哀,App上架没几天,便被人仿制出与之类似、入手更快的《2048》,2048获得了巨大的成功,无论App store 还...

yancy_
2017/06/21
0
0
2048,成功和我

过去的几周对我而言是一次狂野之旅。在3月份,我为了娱乐开发了一款名叫2048的游戏,在GitHub上作为开源软件发布了。在接下来几周里,它出乎意料地成为世界级的成功,它已经被2千3百万用户玩...

腊八粥
2014/05/08
11.5K
42
纯前端开发小游戏教程

其实很多常见的小游戏都是纯前端开发出来的,比如曾经风靡的2048、别踩白块啊等等,简单有趣,对于初学者来说,这些小游戏是非常不错的练手项目。 实验楼上很多前端教程,这里整理7个前端开发...

实验楼
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解决各浏览器向url中传中问参数的问题

https://www.cnblogs.com/godtrue/p/4333262.html 后台的处理代码 public static String getUrlnewName( String oldName) {String newName = "";try {String agent = inv.get......

踏破铁鞋无觅处
24分钟前
1
0
微信支付携带证书请求

package utils.wechat; import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.security.KeyStore; import javax.net.ssl.SSLContext;......

猿神出窍
32分钟前
2
0
1093 - You can't specify target table 'xxx' for update in FROM clause, Time: 0.002000s

1093 - You can't specify target table 'xxx' for update in FROM clause, Time: 0.002000s 根据结果集在b_order_copy1 表中删除 DELETE FROM b_order_copy1 WHERE Id in ( SELECT Id FRO......

lwenhao
32分钟前
1
0
JavaScriptCore全面解析

本文由云+社区发表 作者:殷源,专注移动客户端开发,微软Imagine Cup中国区特等奖获得者 JavaScript越来越多地出现在我们客户端开发的视野中,从ReactNative到JSpatch,JavaScript与客户端相...

腾讯云加社区
36分钟前
1
0
Jmeter参数的AES加密使用

在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时...

程序猿拿Q
47分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部