技术分享帖!使用 UIKit 开发益智游戏 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
apolloX

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

  •  
  •   apolloX Jul 21, 2014 3129 views
    This topic created in 4299 days ago, the information mentioned may be changed or developed.
    还真是使用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  
       Jul 22, 2014
    友情帮顶!
    swamp
        2
    swamp  
       Jul 24, 2014
    擦,这么好的帖子,竟然没有人顶
    About     Help     Advertise     Blog     API     FAQ     Solana     3526 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 10:44 PVG 18:44 LAX 03:44 JFK 06:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86