幼麟・闪影・奎特尔~2019不算冷!插图

为了自己的第一个处女作《奎特数字大冒险》又封闭了近10天时间,给游戏增加金币和新角色,用了一个晚上折腾了微信云开发,感觉局限性太大又去折腾腾讯的小游戏框架wafer-client-sdk、wafer-node-sdk、mysql、nodejs…虽然勉强把服务器是弄好了,但怕Bug太多,连登录都成问题,最后还是改成了本地的存储数据!

直到前天才空了下来,逛了下论坛才知道发生了不少趣事,看来沉迷于游戏开发与沉迷玩游戏同样要不得。

1. 幼麟棋牌开源版-四川麻将

幼麟棋牌在社区中的贡献是毋庸置疑的,不少创业公司可能就是在他的基础上起家的,也是不少同学踏上Cocos Creator的开发的第一个完整的学习教程。

在2019年元旦,麒麟子大神就在论坛上公布了麟棋牌开源版-四川麻将升级到Cocos Creator 2.0.6,真的是业界良心,行业楷模,同时也为Cocos Creator 2.x带来了更多的案例和活力!

麒麟子还总结了在引擎升级过程中遇到的坑,shawn在此当一个搬运工:

  1. 移除了cc.director.getWinSize、cc.director.getVisibleSize,替代方案是使用cc.winSize 、cc.view.getVisibleSize
  2. Canvas的width和height 在onLoad的时候,不会随着屏幕变化
  3. Widget原来的align once 变成了三个值 ONCE、ON_WHEN_RESIZE、ALWAYS,默认是ON_WHEN_RESIZE
    widget
  4. EventTarget.emit事件不再附加detail,如node.emit('event',data),现在node.on('event', data)时收到的就是data,携带的参数最多可支持5个,通过引擎源码中可以看到:CallbacksInvoker.prototype.invoke = function (key, p1, p2, p3, p4, p5) {
    ...
    }
  5. build的时候collider包暂时不能去,去掉的话执行会报错!(2.0.7好像没这个问题了)

幼麟棋牌升级到了2.0.6,总的来说Prefab和场景加载确实快了许多,顺带幼麟棋牌还处理了几个问题:

  1. 替换了新Logo
    幼麟▪四川麻将
  2. 全屏幕适配,目前支持从iPhoneX到iPad有兴趣的朋友直接源码搜索setFitScreenMode;
  3. 网页版本不再检查版本号 不会再出现 新有版本 需要下载 的提示。

github地址:https://github.com/babykylin/babykylin_scmj

2. 闪影地图编辑器

闪影是什么?他与Tiled比有什么不同?他与CCC是怎样的关系?
首先闪影是隐形人(Cocos论坛ID),个人开发的一款游戏地图设计软件,目的是让一切变的灵活可控。

他和Tiled不同,Tiled是发布一个文件,CCC进行显示解析。但是闪影是在自有的显示界面,进行数据计算,然后在CCC中进行加载显示,也就是闪影用的所有东西,都是在CCC API基础上进行的,所有图块都是一个Node,所有的对像,你都拥有绝对的控制权,而且绝对不会有一点兼容问题。甚至通过闪影,你几乎可以完成对游戏地图上,所有的需求与设计。

下面看几个演示gif:

ed45ebed-848b-4925-a81e-4835490dc5c4.gif

45f47723-76f4-41fe-8a23-e573c37200c6.gif

cf1653b1-88f6-4418-aa6f-2708c94eb6c2.gif

4f49e6e3-8681-451c-9718-9917aabccc36.gif

Shawn还看了两集闪影在bilibili的视频教程,非常的牛逼,有机会一定要实际体验一番,之后公众号还会陆继转载更多闪影教程。

4. 我近期遇到的问题

Creator2.0.7 BMPFont字体问题

在实践微信小游戏开发的过程中,Shawn之前使用的是2.0.5,后来升级到了2.0.7发现子域BMPFont字体会报错,而且2.0.5修改BMPFont的Label节点颜色在微信子域中也不生效。

将此问题报告给了引擎组大神,第二天就给我了解决方法,如果你也遇到些问题,可以参考这里:
https://github.com/cocos-creator/engine/pull/3731

引擎源码修改了,但官方还没有发布新版本怎么办呢?但有不少同学不知道怎么整合到当前Creator的版本中,这里简单介绍下方法:
1. 进入Creator安装包目录,找到engine目录,将要修改的引擎源文件替换。例如这里修改的文件是:
cocos2d/core/renderer/canvas/renderers/utils.js
在Mac下路径为:
/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/renderer/canvas/renderers/utils.js
2. 在命令终端回到/Applications/CocosCreator.app/Contents/Resources/engine下,执行npm install安装引擎编译依赖
3. 在命令终端执行:gulp

[11:02:56] Using gulpfile /Applications/CocosCreator.app/Contents/Resources/engine/gulpfile.js
[11:02:56] Starting 'clean-cache'...
[11:02:56] Starting 'build-debug-infos'...
[11:02:56] Finished 'build-debug-infos' after 5.1 ms
[11:02:56] Starting 'build-html5-preview'...
[11:02:56] Starting 'build-jsb-preview'...
[11:02:56] Finished 'clean-cache' after 166 ms
[11:02:56] Starting 'build-jsb-dev'...
[11:02:56] Starting 'build-jsb-min'...
[11:04:27] Finished 'build-jsb-preview' after 1.52 min
[11:04:57] Finished 'build-html5-preview' after 2 min
[11:04:57] Finished 'build-jsb-dev' after 2 min
[11:04:57] Finished 'build-jsb-min' after 2 min
[11:04:57] Starting 'build-jsb'...
[11:04:57] Finished 'build-jsb' after 50 μs
[11:04:57] Starting 'build'...
[11:04:57] Finished 'build' after 2.2 μs
[11:04:57] Starting 'default'...
[11:04:57] Finished 'default' after 2.3 μs
 /Applications/CocosCreator.app/Contents/Resources/engine ⮀

大约两分钟时间引擎编译完毕,这时再回到自己项目构建即可。

圆形遮罩Shader

之前Shawn发过一篇教程《CreatorPrimer| 2.x ShaderHelper组件速递》,其中附带的源码中有一个MaskShader实现将Sprite裁剪为圆形,在较小尺寸的图片上存在缺陷,只显示了部分,在论坛上了有同学提及。

之后参考「小叔叔」的https://github.com/fylz1125/ShaderDemos中的做法,将其移置到Creator 2.x中,成功实现圆形遮罩,看下图:
image.png

下来我会尽快将它整合到之前的ShaderHelper源码。

pbkiller对Creator1.10的支持

这段时间对公众号疏忽了很多,「MG」同学在公众留言了好几条消息,反馈pbkiller在1.10上报错,非常抱歉因为我的疏忽,给你带来了困扰!

目前解决办法是将pbkiller.js 88行,修改如下:

if (cccVer >= 2 || (cccVer >= 1.1 && cccVer < 1.2) && ProtoBuf.preloaded)  {
   ...
}

新增 (cccVer >= 1.1 && cccVer < 1.2)对1.1的版本,它与2.x的处理方式相同。

我下来也会尽快提交Cocos商店,再次感谢「MG」同学,帮助我发现pbkiller的Bug!

5. 结语

最后还是不得不说一下《奎特数字大冒险》,新增加了角色、金币功能,为的是能留住用户,帮助小朋友们能够使用这款披着游戏外表的脑力训练软件 。

为什么要继续坚持更新下去呢?

前几天发生了这样一幕,我和女儿去理发店,人很多需要排队,我拿出手机让女儿当我的专职测试人员,尝试我调整的游戏难度!

她是百般的不情愿,它已经被玩麻木了,没办法我只好答应她:“打过100分请你吃好吃的!”。

旁边一位小男孩被我们的游戏声音给吸引了过来,凑过来看我们玩。

我问道:“小朋友,你上几年级了?”
小男孩说:“3年级,你们在玩什么呢?”
我对女儿和小男孩说:“我们玩的是数学游戏,馨儿,我们给这位小朋友试试,看他能打多少分?”
小男孩高兴地说:“好呀、好呀!”

小男孩试了几把,找到了感觉,但在遇到4个数字的BOSS怪兽就有些心慌了,掉了一滴血,就直接把手机扔回给了我们。

我女儿接下手机,从容不迫地接着玩下去,说道:“你来算小的,我算大的”,就这样两个小朋友配合着,喊着数字继续战斗。

女儿刚上一年级,目前通过我的压迫充当《奎特数字大冒险》的测试人员,已经对20以内,3个数的加法已经是不需要思考了,一眼能看到能凑成10的数字 ,范围在20~30的也能在5秒左右计算出来,小男孩只能在旁边看着,只能跟上计算量在10以内的怪兽。

我无意中观察到,打到后面,面临怪物的逼近,就算有时数字识别有点问题,女儿还是能很冷静的将之前的数字擦除,然后再工整的重写上去。
image.png

面临危机,还是能保持冷静,看着她能不断成长,心里很高兴!!!


欢迎关注「奎特尔星球」公众号,欢迎大家投稿,来我们一起成长!
image

最后修改日期:2019年10月31日

作者