有段日子没分享代码了,今天分享一个原本打算上架的项目,游戏做到中途本打算放弃开发,放了一段时间,觉得有些可惜,还是把主体功能写完成了,项目就不上架了,代码分享给大家吧.项目中的UI布局样式也是我自己设计的,图片有部分自己做的,有部分网上找的.如果觉得有兴趣上架的,可以自己完善下剩余的细节,自己发版吧.

发一部分图大家看下:(图片)

aaa1.gif

aaa2.gif

aaa3.gif

aaa4.gif

屏幕快照 2018-04-03 15.09.25.png

游戏是消除类的游戏,核心玩法是玩家通过拇指在屏幕绘制图形,当玩家绘制的图案与怪物身上气球的图案相同时,气球被销毁,如果怪物身上气球数为0时,怪物会被消灭.

用户绘制图形样式(sameTouch)

项目开始前,首先要设计玩家可绘制的图形.我这里设计以下图案,图片的制作采用Photoshop,关于项目中UI的制作就不讲了,感兴趣的可以自学下PS,相关的教程网上一大片.这里也可以设计一些复杂的手势,随着游戏难度的提升而出现.需要注意的是,设计的手势不要太过相近,否则后面不好做判断.

怪物身上气球样式:

pop1.png

pop2.png

如何判断玩家绘制的图形是什么样式?

方案一:首先我想到的是图像识别功能.给定一个模型库装入设定好的可绘制图形样式.将玩家绘制的路径变成黑色,背景为白色,玩家每次绘结束后,获取玩家绘制的图片,并将图片尺寸缩放到与模型库图片大小相同,通过图形的对比,判断用户绘制图形与模型库中哪种图形最相近,并给出相似度,当相似度大于70%时,即认定玩家绘制的图形.然而理想很丰满,现实很骨感首先每次获取玩家绘制路径并且生成图片,这种频繁的操作,手机能明显的感觉卡顿.并且为了做图像的对比,我又引入了opencv框架.一来一去,效率实在太慢了,so放弃此方案.(opencv,一套强大图像处理的框架,这里使用有点杀鸡用牛刀了).

方案二:首先,将手机看做XY平面坐标,在屏幕上一一绘制开发者设定的标准图像,并且记录绘制路径的二维坐标数组,一套坐标数组对应一种图形.将所有设定好的图形坐标数组保存起来,当做模型库与后面玩家绘制的坐标数组对比.当玩家绘制好路径后,将玩家绘制的坐标点数组与当前库内的坐标数组一一对比,求出与之相近的图形,并且返回一个相近度,根据图形复杂程度与相近度的结合,判断用户绘制的图形.具体代码看工程中的sameTouch文件下的代码.这个方案在速度与效率上是可行的,但也有弊端.由于这个方案是根据路径中坐标点差值的计算而判断的,实际上一个图形会有多种绘制方案,比如数字8,有人是从由上至下开始绘制,有人是从中间到上再到下绘制,还有人是中间到下再到上绘制,不同玩家会有不同的书写习惯,但是最终得到的图形结果都应该是8,这样就需要模型库中有同一个图像的多套模型路径数组.(目前项目中采用的就是这种方案).

方案三:这个方案是我后来研究机器学习时候发现的方案,并且可以确定,这个方案更适用这个项目.就是采用神经网络方案,通过坐标组来判断,由于项目搁浅了,就没有换成这个方案.感兴趣的朋友可以研究下.附上神经网络的链接,就是采用里面的方案,我自己测试了下数字0-9,非常准确,推荐使用此方案.[神经网络]

至此,游戏中最核心的功能得以实现,剩下的就是添砖加瓦了.

首页(HomeScene)

首页布局没啥可说的,就是一些按钮+图片构成,采用cocos studio布局,通过加载csb文件.

下面三个小怪物自己会有默认动画播放,当玩家点击也会有交互动画.

游戏分为两种模式,一种是计时模式,一种是守护模式.

计时模式:游戏的时间为固定模式(在游戏开始前可以通过购买游戏道具增加时间).时间到了,游戏结束.

守护模式,玩家有固定生命值(在游戏开始前可以通过购买游戏道具增加生命值),每当一个怪物miss后,生命值减一,当生命值为0,游戏结束.这里加了个功能,随着游戏进程越长,怪物下落的时间也会越快.

玩家可以通过游戏中获取金币或者直接购买金币,金币的作用是在游戏开始前,可以购买道具,增加游戏的娱乐性.

游戏场景(GameScene)

按着游戏的内容,场景主要分为四大层:

GameControlLayer:用于游戏数据的展示,如获取金币数量,击杀怪物数量,连杀特效.同时也兼顾暂停,结束等UI的展示.这里也同样都可以在单独拆分出来,看开发者自己的习惯吧.

MonsterLayer:用于控制游戏怪物的层级.游戏中怪物的出现,下落,气球的销毁,怪物销毁等.

UserDrawLayer:用于记录玩家绘制图形的层级,每次绘制完成后,将玩家绘制图形的结果传给MonsterLayer,判断是否有可供消除的气球.

GamePropLayer:道具层,道具分为2种可使用道具一种被动道具,可使用的为炸弹(消灭当前所有怪我).减速道具:较少怪物下落速度.

就写这些吧,游戏比较简单,开发起来也不算困难,感觉没啥需要可写的,耗时最多的都在UI的制作上啦.有兴趣的朋友可以下载代码自行研究下.代码地址:代码地址

作者:维尼的小熊

链接:https://www.jianshu.com/p/0d89388e3a4e

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

消消乐php源码,手游泡泡消消乐设计(内附代码)相关推荐

  1. 视频教程-Layabox3D游戏视频教程-源码-手游开发

    Layabox3D游戏视频教程-源码 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥49.00 立即订阅 扫码下载「CSDN程序员学院APP」, ...

  2. 仿《游戏鸟》网站源码+手游发号评测/游戏下载网站模板

    正文: 帝国cms仿<游戏鸟>模板源码,92kaifa版APP下载类整站源码.手机游戏门户网站模板,大型手游门户网站模板. 支持PC与手机端同步生成html,需多端同步生成插件. PS:图 ...

  3. 仿酷酷游戏网源码/手游综合门户帝国CMS7.5模板

    正文: 帝国cms7.5仿<酷酷游戏网>源码,帝国cms手游综合门户网站模板,外观大气漂亮的手机游戏下载.游戏资讯.游戏新闻门户.综合手游门户网站模板,包含礼包功能.开测功能.专题.专区. ...

  4. android 四方向摇杆源码,手游摇杆(一)最简单的四方向摇杆

    摇杆是所有手游中不可或缺的一部分,是最基本的操作方式,下面是用cococ creator实现的一个简单的四方向摇杆,后面将基于此慢慢优化. 一.场景 新建一个场景,拖入三中图片,如图: 分别表示:sp ...

  5. 帝国CMS7.5仿《六皮游戏网》源码/手游门户网站模板/手机游戏下载模板

    ☑️ 编号:ym249 ☑️ 品牌:帝国CMS ☑️ 语言:PHP ☑️ 大小:101MB ☑️ 类型:手游门户 ☑️ 支持:pc+wap

  6. 消消乐php源码,利用PHP实现开心消消乐的算法示例

    前言 本文主要介绍了关于PHP如何实现我们大家都知道的开心消消乐的算法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.需求描述: 1.在一个8*8的矩阵方格中随机出现5种颜色的 ...

  7. 720 全景 css3源码,CSS3如何实现全景图的动画效果(附代码)

    本篇文章给大家带来的内容是关于CSS3如何实现全景图的动画效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 基本代码 html代码: 首先定义一些基本的样式和动画:.pa ...

  8. cocos creator3.3.0休闲游戏(云浮消消乐)源码H5+安卓+IOS三端源码

    cocos creator3.3.0休闲游戏(云浮消消乐)源码H5+安卓+IOS三端源码,开发脚本为typeScript方便扩展和阅读,支持cocos creator3.X版本,完整的源码可直接运营. ...

  9. 基于Unity3D经典消消乐游戏源码,代码详细注释,c#版方块消消乐源代码

    使用Unity2017开发,实现功能有: 基本消除功能 UI动画以及代码控制动画 消除动画以及手势识别 消除判定.连续消除判定 UI是自己独立完成比较简单,打包平台我设置的是webGL平台,有需要改成 ...

最新文章

  1. java基础之面试篇四-单向链表和双向链表区别
  2. 简单的Tab切换组件
  3. 【Java】5.1 类和对象
  4. HDU 2063 过山车 二分图匹配 匈牙利算法
  5. Objective-C中一种消息处理方法performSelector: withObject:
  6. mavenspringboot配置不同profile环境
  7. Android之SharedPreferences 存储复杂对象
  8. 我在项目中对 MySQL 做的优化
  9. mysql 开发包 安装_mysql的zip包的安装方法
  10. mysql 关联数组_在PHP / MySQL查询中创建关联数组
  11. Xamarin只言片语1——Xamarin下的弹框
  12. 注意!最新.Net Framework与Exchange 的兼容性问题
  13. 山西计算机职业学校排名2015,2015山西专科学校排名及排行榜
  14. 工具:Spy++ —— 窗口、消息查看分析利器
  15. python3怎么将函数的用法通过help导出到文件
  16. Depth from Motion:探索突破纯视觉 3D 检测瓶颈
  17. [听风]TBC单体插件头像显示ShadowedUnitFrames
  18. (20181111)Fortran 产生随机数
  19. 数据库mysql调优(最全整理)
  20. SRPG游戏开发(三十一)第八章 游戏中的数据 - 一 创建新项目(Create New Project)

热门文章

  1. Word Puzzles
  2. 计算机键盘按键更改,键盘的按键如何更改
  3. 电动汽车自燃事故及原因汇总
  4. Minecraft——Forge1.16.5模组开发(36.2.20)——(1)开发环境搭建
  5. java 桌面客户端开发
  6. 最长公共子串(Python)
  7. 红队内网渗透神器--CobaltStrike安装教程
  8. 群晖服务器操作系统,群晖RS3412xs
  9. TestStand-用户界面
  10. 关于串口编程的(一)