Egret是什么

简单来说,白鹭引擎就是一款用TypeScript开发的开源游戏引擎

它可以编译成HTML5直接在移动端的浏览器运行

或者编译成Android,iOS等(相信支持WP不是问题)原生应用

用他们自己的Egret runtime跑出接近原生APP的性能介绍是这样的,谁知道呢

 

优势

如今微信如(heng)日(xing)中(ba)天(dao),著名的”围住神经猫”就是用Egret编写的,易于传播是HTML5游戏的优势

可以做一些游戏的HTML5试玩版,让玩家过度新手教程,然后提示下载APP,推广效果绝对比”老婆不在家玩的游戏“效果好,而且导入的用户全都是优质用户让23:59分开服去死吧

 

正题

 进入官网 –> 进入下载页

可以看到Egret的工具链非常完善

其中Egret Engine是必须下载的

玩命地安装…

作者还是很幽默的…

关于egret命令

创建第一个工程

编译

运行

然后浏览器就打开了有木有(推荐Chrome)

但是要注意一点,ts不能直接运行,需要编译成js后才能被浏览器直接运行

 关于工具

Mac下推荐WebStorm.Windows下VS2013或者WebStorm都可以

题外话

个人觉得这款引擎潜力很大,但是毕竟刚刚起步,还有很多不完善的地方,举个栗子,官网引擎已经到1.5了,但是ios-support还是1.1.4,而工具对版本的一致性要求很高,导致同一批次下载的不同工具不能配合使用,需要降级引擎才能在ios上开发.

总之,移动开发是大方向,我也陪quick-x一路走来,现在quick-x也正式更名cocos-lua,也算大事一件,希望Egret越做越好吧!

在出现对话的时候,我们往往不希望文字一下子突然出现,于是有了这个需求

文字要慢慢的出现,但是点击时,一下子显示完

用法如下

 

有倒计时功能的标签这个还是挺常见的

直接上代码吧

用法如下

 

除了text外,display.newTTFLabel里的所有参数都有效
新增了time参数(单位毫秒),format参数(支持H M S),triggerTime参数(触发事件,不传时为0)
倒计时结束会触发TimerLabel.ON_COUNT_DOWN

2.x时代的CCControlButton的确十分方便,策划们也十分喜欢按下有缩放的效果

到了3.x的项目,工具链已经相当完善,我使用的是cocos2dx3.2+quick3.2rc1+cocos code ide 1.0.1+cocos studio 1.6(以下简称ccs)

在ccs里建立的按钮,到了程序里实际上是UIPushButton

从quick的源码可以看出,UIPushButton继承于UIButton,UIButton继承于cc.Node

那么按下弹起的效果就得自己写了,好在quick扩展的方式很方便

我用起来是全局的

在载入ccs之后,会遍历所有节点,找出node.__cname == “UIPushButton”的元素,然后UIButtonEx.extend(node); node:setPressedActionEnabled(true)就可以了

需要按钮放大的,把0.9改成1.1就行了

之前精灵变灰都用的是别人写的一个GraySprite,实在是有很多局限

后来有个需求是要让CCControlButton在不传disable状态图片的时候,自动把normal的图片变灰

查阅多方资料后,终于把问题搞定

  1. 在cocos2dx/shaders目录下新建一个ccShader_PositionTextureGray_frag.h
  2. 找到ccShaders.h,在最后加上
  3. 找到ccShaders.cpp,在最后加上
  4. 找到CCGLProgram.h在enum后面的define后加上
  5. 找到CCShaderCache.cpp,在开头enum的最后加上kCCShaderType_PositionTextureGray
  6. 继续在CCShaderCache.cpp的loadDefaultShaders()最后添加
  7. 继续在CCShaderCache.cpp的reloadDefaultShaders()最后添加
  8. 继续在CCShaderCache.cpp的loadDefaultShader(CCGLProgram *p, int type)最后添加一个case条件
  9. 新建一个ColorUtils.h
  10. 新建一个ColorUtils.cpp
  11. 使用
    对于CCSprite

    对于CCScale9Sprite

    remove亦然

 

用yum安装时提示

原因是RPM数据库被破坏

重建数据库后恢复正常

 

Posted in .

As we all know. 苹果在iOS7.1中的Adhoc强制使用https链接,这下公司的小伙伴就不能愉快的通过内网下载安装测试包了

经过一番折腾,终于实现了自签署SSL证书让手机通过浏览器在线安装ipa

  • 1. 环境

    开发环境:Mac OS X 10.9.4+Xcode6Beta5

    服务器:CentOS 6.5 x64+apache2

  • 2. 客户端准备部署文件

    a)先去developer.apple.com申请证书和描述文件(adhoc,过程略去不表)
    b)将工程打包成ipa,如Demo.ipa,准备一个Icon.png和一个[email protected]
    c)建立Demo.plist文件


    d)上传Demo.ipa,Demo.plist,Icon.png,[email protected]到/var/www/html/ipa目录下备用
  • 3.服务端配置

    a)安装openssl


    b)生成证书

    c)配置apache

    d)将生成的my-ca.crt拷贝到/var/www/html/ipa目录下备用
  • 4. Let’s Go!

    a)在iOS设备上打开safari访问,https://www.your-domain.com/ipa/my-ca.crt,信任并安装
    b)在iOS设备上打开safari访问,itms-services://?action=download-manifest&url=https://www.your-domain.com/ipa/Demo.plist

  • 5. 还有什么?

    a)安装设备的udid需要在描述文件里
    b)做一个网页,引导用户先安装crt,再点击itms-service


     

来自于CocosCodeIDE技术交流群”文件夹”同学

 

这个需求来自于工作中的一个需求

两个城池之间的路径是美术事先画好的,武将需要沿着画好的曲线行进

经过查找资料,发现了这篇文章

用到了下面这个公式:
阶贝塞尔曲线可如下推断。给定点P0、P1、…、Pn,其贝塞尔曲线即
贝塞尔曲线公式高阶曲线为建构高阶曲线,便需要相应更多的中介点。对于三次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2,和由二次曲线描述的点R0、R1所建构:
三次贝塞尔曲线

对于四次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2、Q3,由二次贝塞尔曲线描述的点R0、R1、R2,和由三次贝塞尔曲线描述的点S0、S1所建构:
四次贝塞尔曲线

更复杂的:
五次贝塞尔曲线

参考资料

以下为lua的实现方式,参考了上文中的c++算法,并没有考虑在极为高阶的情况下的性能问题

代码基于quick-cocos2d-x 2.2.5编写(谁叫他快呢)

 

 

最后放一张效果图

这个问题一开始困扰了我一段时间

原因是Swift继承@protocol的时候颜色会和Swift里NSObjectProtocol的颜色不一样

我以为不能继承了

首先在Bridge-Header.h里(没有的话,创建一个Objective-C的类,会提示创建,再删除OC的类就可以了)

然后在Swift里就能正确出现代码提示了

继承protocol这么写

注意一点,要把实现也写上,否则Swift编译是不通过的

根据OC版本的SDK,翻译成Swift

最后在合适的地方调用

微博SDK集成登录功能就做好了