还真是使用iOS的UIKit,之所以选择这种方式主要是作为应用开发者,这是再熟悉不过的了,还因为只使用UIKit就能够完美胜任。目前还在学习Cocos2dx,到时可用此引擎实现跨平台。
近期和资深UI设计师田总一起开发了一款益智拼图游戏——谜图,按田总的话来说,“我们小时候玩得拼板游戏”,现在我们把它的趣味性提高、难度提高,然后做到了iOS平台上来。
这就是谜图:
http://v.youku.com/v_show/id_XNzQzMjk5OTU2.html确定游戏运行方式,各种细节等就不在这里赘述了,有兴趣的看官可以移步“
http://www.zcool.com.cn/work/ZMzcyMzI4NA==.html”。现在分享下开发过程:
当初设计师小伙伴田总跟我说了这个idea之后,就觉得这个有搞头!首先是它操作简单,其次玩起来有意思!之后和田总约定,花2天先把Demo做出来,简单地实现游戏。
这个Demo里实现了专门生成3x3模板的类和专门处理玩家手势的类。
玩了这个Demo,更坚定了我们做下去的决心。接着设计师小伙伴细化交互、细化界面,我开始码代码实现游戏。
这款游戏是拼图游戏,有计时、有关卡、有难度等级、有纪录、有打乱顺序,这些都可以独立成模块来进行实现。经过代码构思,下面用一副图简单介绍谜图是如何实现的。
http://cc.cocimg.com/bbs/attachment/Fid_21/21_113537_105fd814e6d3f8a.png看了上面图,是否了解了游戏主体呢。上面的每一块都不可替代,都具有独立的功能。简要介绍一下各组成部分:
游戏主控制官:把各个部分捏合在一起;
拼图模板工厂:建造拼图的模板,如现在是3x3的模板;
乱序专家:实现根据关卡的难度级别来打乱拼图顺序的算法;
滑块移动管家:用来响应玩家的操控,并将滑块移动到正确的位置;
裁判:用来判定是否过关,其实现过关的规则;
记录员:顾名思义,其是用来记录一些数据,如倒计时和消耗时长;
纪录保管员:玩了游戏之后,自然需要把玩过的记录保存下来呀,它就是用来保存记录的。
这样看,游戏的运行就很清晰了:
建造拼图模板 —> 打乱顺序—> 开始计时 —> 玩家移动滑块 —> 判定过关 —> 记录成绩
会不会有人觉得,这不就是一款很简单的小游戏嘛!为毛还搞这么多模块?
举个例子,“拼图模板工厂”,这个模块目前只用来建造3x3的模板,如果没有抽取出来一个独立的功能模块的话,以后需要4x4,或者3x4,甚至100X100,那就糟糕了,必须得推倒重来。虽然说不少程序员都很喜欢推倒重来,但是这个耗时就太多,我不愿意这么干。
这其实就是一种组件化、模块化的思想,将一件事分割为功能独立的组件、模块,这样就避免了代码耦合,并且能够很好地分散问题,每个功能组件都专注于自己的实现,也给开发带来效率的提升。同时也给扩展带来很大的便利。
理论就不多说了,下面分享下工程结构图和story board图:
http://cc.cocimg.com/bbs/attachment/Fid_21/21_113537_894c99802e098f7.pngMagicPadGame是最初定的名称,意为魔板游戏,后来就没修改。
可以看到整个代码工程分为四个部分:ThirdLib(第三方库)、DreamingKit(自己封装的一些工具)、ViewController(游戏界面)、AppSupport(就是之前说的此游戏的各组成部分)。
还算结构清晰的吧
http://cc.cocimg.com/bbs/attachment/Fid_21/21_113537_fcad419b64875b6.png游戏比较简单,Storyboard只由四个界面组成。这里强烈建议个人开发者使用Storyboard。真的是个人开发者的福音,它会让你少些很多代码,并且维护起来也很容易。
这款游戏虽说简单,但是因为是兼职也因为其他原因,前前后后共花了一个月的时间。
真是玩游戏容易,做游戏不易!
目前线上的是1.2。主要修改是降低的游戏的难度,添加成绩弹窗等激励措施。这个修改使得关卡难度更加合理,玩家更容易上手。
游戏暂时支持iOS,目前正在准备开发安卓版。
试用请戳:
https://itunes.apple.com/cn/app/mi-tu-zui-xin-zui-hao-wan/id853467061?mt=8
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/123806
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.