axmol/docs/RELEASE_NOTES_CN.md

4.3 KiB
Raw Blame History

Table of Contents generated with DocToc

v3.14

新特性

  • 支持Spine二进制格式
  • 所有平台使用luajit 2.10-beta2
  • 新增动作类:ResizeByResizeTo
  • Android模拟支持关闭多点触摸
  • Sprite支持九宫格特性
  • 动作类新增功能可以根据tag查询某一节点正在运行的动作数量
  • Button类可以设置title内容
  • EditBox支持文本水平对齐
  • 支持Mac平台手柄

特性详细介绍

所有平台使用luajit 2.10-beta2

之前的luajit版本无法在PC上方便地编译出arm64的字节码需要用真机比如iPhone6真机)编译因此在之前的版本iOS 64位使用的是luaiOS 32位使用的是luajit。

luajit 2.10-beta2版本可以方便地在PC平台编译出arm64位的字节码因此我们在各平台都使用了luajit这样能够提升性能。如果使用cocos命令编译、打包的话那么cocos命令会自动编译出对应平台的字节码如果有生成64位字节码的话那么会把这些字节码放到64-bit目录下。当然你也可以通过cocos luacompile自己编译字节码,具体的使用方式可以参考cocos luacompile -h输出的帮助信息。

通过cocos命令编译、打包生成的字节码时各平台的情况如下

平台 生成32位字节码 生成64位字节码
iOS
Android 如果APP_ABI的内容不是只包含64位架构(APP_ABI := arm64-v8a) 如果APP_ABI包含了64位架构比如APP_ABI := arm64-v8a ...
Mac
Windows
Linux

Sprite支持九宫格特性

Sprite现在支持九宫格特性了使用方式如下

auto sprite = Sprite::create(...);
// set center rect
// the origin is top-left
sprite->setCenterRectNormalized(Rect(x, y, width, heigh));

详细信息可以参考Sprite::setCenterNormalized()的注释。

sprite-slice

支持Spine二进制格式

使用方式没有改变,只是文件格式变成了二进制格式。这样的好处就是解析效率更高,文件更小。具体的使用方法如下:

skeletonNode = SkeletonAnimation::createWithBinaryFile("spine/spineboy.skel", "spine/spineboy.atlas", 0.6f);

...

spine-binary

新增加动作类

新增加两个动作类:ResizeByResizeTo。和ScaleByScaleTo不同的是,ResizeByResizeTo改变的是节点的content size的大小。这种动作对于支持九宫格特性的节点的缩放效果比ScaleByScaleTo好,因为ScaleByScaleTo是对节点做整体缩放。效果对比如下:

resize-action-effect

已知问题

如果使用Xcode 8.2那么lua工程会在iOS模拟器上崩溃。通过调试发现崩溃在lua_open函数的调用上。如果使用Xcode 8.1或一下版本那么没有问题。我们怀疑这是Xcode的bug在v3.14无法解决。使用lua的开发者在位iOS平台开发时有两个选择

  • 使用Xcode 8.1或者一下版本
  • 使用Xcode 8.2在Mac或者iOS真机开发、调试

该问题的进展可以跟踪这个issue

其他

详细的改动内容