V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
apolloX
V2EX  ›  程序员

技术分享帖!使用 UIKit 开发益智游戏

  •  
  •   apolloX · 2014-07-21 22:19:09 +08:00 · 2633 次点击
    这是一个创建于 3777 天前的主题,其中的信息可能已经有所发展或是发生改变。
    还真是使用iOS的UIKit,之所以选择这种方式主要是作为应用开发者,这是再熟悉不过的了,还因为只使用UIKit就能够完美胜任。目前还在学习Cocos2dx,到时可用此引擎实现跨平台。

    近期和资深UI设计师田总一起开发了一款益智拼图游戏——谜图,按田总的话来说,“我们小时候玩得拼板游戏”,现在我们把它的趣味性提高、难度提高,然后做到了iOS平台上来。

    这就是谜图:

    确定游戏运行方式,各种细节等就不在这里赘述了,有兴趣的看官可以移步“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.png
    MagicPadGame是最初定的名称,意为魔板游戏,后来就没修改。
    可以看到整个代码工程分为四个部分: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
    black
        1
    black  
       2014-07-22 15:49:45 +08:00
    友情帮顶!
    swamp
        2
    swamp  
       2014-07-24 23:49:31 +08:00
    擦,这么好的帖子,竟然没有人顶
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:02 · PVG 04:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.