cocos2d-x V3.14.1 版本更新说明

2024-08-24 10:32

本文主要是介绍cocos2d-x V3.14.1 版本更新说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在2017新年来临之际,Cocos引擎团队送上了新一年的惊喜:Cocos2d-x v3.14全新版本。该版本支持所有平台使用luajit 2.10-beta2、Sprite支持九宫格特性、新增动作类ResizeBy和ResizeTo......这么多给力的新功能,相信你一定会喜欢的。 280986329434709337   话不多说,下面我们赶紧来细细盘点Cocos2d-x v3.14新版新惊喜。  

主要新特性列表

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

主 要 特 性 详 解

1、所有平台使用luajit 2.10-beta2 性能显著提升

之前的luajit版本无法在PC上方便地编译出arm64的字节码,需要用真机(比如iPhone6真机)编译,因此在之前的版本,iOS 64位使用的是lua,iOS 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

 

2、Sprite支持九宫格特性  UI 界面调整更方便

在开发 UI 界面时,我们通常会使用九宫格格式的图像来显示尺寸可能会根据适配屏幕分辨率的需要动态修改的 UI 元素。如今Sprite现在支持九宫格特性了,使用方式如下: c++ auto sprite = Sprite::create(...); // set center rect // the origin is top-left sprite->setCenterRectNormalized(Rect(x, y, width, heigh)); 这样即使使用很小的原始图片也能生成覆盖整个屏幕的背景图像,一方面节约游戏包体空间,另一方面能够灵活适配不同的排版需要。   sprite-slice-1  

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

3、支持Spine二进制格式 解析更高效文件更小

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

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

...

spine-binary

4、新增两大动作类 节点缩放更方便

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

resize-action-effect

5、已知问题说明

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

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

该问题的进展可以跟踪下列帖子:

https://github.com/cocos2d/cocos2d-x/issues/17043

更多详细的改动列表,欢迎查看:

https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG

 

Cocos2d-x v3.14.1

修复的问题

  • 如果创建物理场景但是没有设置3d物理的摄像机,那么程序会崩溃
  • 由于glfw版本冲突,在linux平台可能会有链接错误
  • 通过带有多边形信息的sprite frame创建的Sprite效果不对
  • VS2015编译Lua工程时有链接错误
  • 通过cocos compile/run -p android --android-studio命令编译Android工程时会有编译错误

其他

通过查看3.14.1版本信息了解所有的问题或者代码改动。

原地址:http://www.cocos.com/cocos2dx

更多问题和技术交流欢迎加入QQ群讨论:83459374

这篇关于cocos2d-x V3.14.1 版本更新说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102228

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四