Cocos2dx杂记:cocos2dx 3.14.1 Spine 处理与 cocos2dx3.10 Spine的区别

Spine深入学习 —— 数据 由于远处的物体可能只产生很少的片段,OpenGL从高分辨率纹理中为这些片段获取正确的颜色值就很困难,因为它需要对一个跨过纹理很大部分的片段只拾取一个纹理颜色。多级渐远纹理背后的理念很简单:距观察者的距离超过一定的阈值,OpenGL会使用不同的多级渐远纹理,即最适合物体的距离的那个。可以通过仅约束变换的子集(例如,仅限制缩放或剪切)来创建有趣的效果。为更新世界变换,本质是触发骨骼位置的计算,由于骨骼位置可能发生旋转偏移,其对应的子骨骼也会受到影响,因此需要更新世界变换重新计算所有骨骼的最新坐标位置。 阅读详情

一、在游戏中经常用到Spine动画,在cocos2dx 3.10之前创建Spine动画可以采用

1、第一种方式

auto spine = SkeletonAnimation::createWithFile("spine.json", "spine.atlas");

但是当json文件过大时每次解析会消耗大量时间导致卡顿

2、第二种方式

//获得数据
spAtlas* _atlas = spAtlas_createFromFile("spine.atlas", 0); 
spSkeletonJson* _json = spSkeletonJson_create(_atlas);
auto spData = spSkeletonJson_readSkeletonDataFile(_json , "spine.json");
//创建
auto spine = SkeletonAnimation::createWithData(spData);

第二种方式通过创建data避免多次解析json文件

二、cocos2dx 3.14.1 spine创建的区别

1、第一种方式

auto spine = SkeletonAnimation::createWithJsonFile("spine.json", "spine.atlas");

方法名称改为createWithJsonFile,同样当json文件过大时每次解析会消耗大量时间导致卡顿

2、第二种方式

//获得数据
spAtlas* _atlas = spAtlas_createFromFile("spine.atlas", 0);
auto _attachmentLoader = Cocos2dAttachmentLoader_create(_atlas );
spSkeletonJson* _json = spSkeletonJson_createWithLoader(&_attachmentLoader ->super);
auto spData = spSkeletonJson_readSkeletonDataFile(_json , "spine.json");
//创建
auto spine = SkeletonAnimation::createWithData(spData);

可以看出在获得data数据的时候变成了如下方式

auto _attachmentLoader = Cocos2dAttachmentLoader_create(_atlas );
spSkeletonJson* _json = spSkeletonJson_createWithLoader(&_attachmentLoader ->super);

我们来看一下库文件,可以看出数据获取的方式发生了改变

void SkeletonRenderer::initWithJsonFile (const std::string& skeletonDataFile, spAtlas* atlas, float scale) {
    _atlas = atlas;
    _attachmentLoader = SUPER(Cocos2dAttachmentLoader_create(_atlas));

    spSkeletonJson* json = spSkeletonJson_createWithLoader(_attachmentLoader);
    json->scale = scale;
    spSkeletonData* skeletonData = spSkeletonJson_readSkeletonDataFile(json, skeletonDataFile.c_str());
    CCASSERT(skeletonData, json->error ? json->error : "Error reading skeleton data.");
    spSkeletonJson_dispose(json);

    setSkeletonData(skeletonData, true);

    initialize();
}

如果还是运用老的创建方式的话,可以正常编译,但是在运行的过程中

void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, uint32_t transformFlags) 方法里面获得attachmentVertices->_triangles将无法获取

这里写图片描述

运行到如下标记的地方将导致程序崩溃
这里写图片描述

这里写图片描述

这里写图片描述

cocos2d-x下实现spine骨骼动画皮肤合成功能(局部换皮) 为什么需要实现皮肤合成? 想象这样一个应用场景,我有一个小人,他有一个衣柜,里面有x个帽子、y件衣服、z条裤子,我想穿出多套搭配怎么办?由于Spine 编辑器不能实现多个皮肤同时处于活跃状态,因此想在编辑器中实现各种搭配,就要做出x*y*z个皮肤。而本文旨在解决这个指数爆炸的问题。 方案: 在Spine编辑器中仅创建单个皮肤(单帽子、衣服)。然后,在运行时,通过组合单品皮肤完成套装皮肤。...... 阅读详情

相关推荐

Cocos2d-x-3.17.2 升级spine

前言: 工作中一直是使用flash在做动画表现,随着flash的被遗弃,现在很多2D游戏动画都转为spine在做,业余时间就想尝试在cocos2dx中使用使一下spine。结果发现创建spine动画的时候报错: 查资料说是需要升级到最新的spine库,于是开始升级spine到最新版本。下面是一些我的环境配置: cocos版本:cocos2d-x 3.17.2 spine更新库下载地址:https://github.com/EsotericSoftware/spine-runtimes 平...

qq_39025293的博客 2953

Cocos2d-x游戏开发之骨骼动画详解-Spine

游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。 帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。 它们需要的图片资源各不相同,如下分别是帧动画和骨骼

wisdom605768292的专栏 6027

cocos2dx lua 升级spine兼容Spine库v3.8到最新版本

本篇将升级cocos2dx引擎中的spine库, cocos2dx自带的spine版本是spine2.x的老版本,现在的spine已经到v3.8了 1 先升级cocos2dx c++原生版本 详细过程请看我的上一篇文章: 链接:https://blog.csdn.net/zhang1461376499/article/details/106031644 2 兼容lua 参考如下几个文件 为了兼容lua,这三个文件中调用了spine库里面的东西,所以我们要做相应的修改,首先看cocos2dx引擎中几个文件:

刀客 6526

cocos2dx+spine 蒙皮遇到的问题

spine版本:3.6 cocos2dx版本:3.1 问题: spine动画加入了蒙皮效果,cocos2dx程序加载以后,显示出来的蒙皮区域是撕裂的 原因: spine版本太高,cocos自带的spine库不支持,我们需要将spine库换成兼容的版本 寻找: spine官网有自己的模块,显示对应的运行库,github上有对应的说明,怎么替换 解决: 替换以后库里调用cocos方法...

LLJ的博客 2573

Cocos2d-x:Cocos2d-x骨骼动画与Spine集成教程

Cocos2d-x允许你自定义Spine动画的渲染方式,这对于实现特定的视觉效果或优化性能非常有用。

kkchenjj的博客 1329

Spine 3.8升级优化包:解决Cocos2dx多相同动画资源加载卡顿问题

缓存并非无限增长,需结合游戏场景变化动态释放不再使用的资源。为此,应提供两套机制:自动清理:监听场景切换事件,在离开某关卡后批量卸载相关资源;手动卸载:暴露API供上层逻辑主动释放指定资源。if (it!逻辑分析查找并释放指定骨骼数据,调用Spine原生dispose函数完成内存回收。clearAll()在场景切换或退出游戏时调用,彻底清空所有缓存。注意事项:调用前必须确保无任何正在使用的Spine节点引用该资源,否则会导致悬挂指针崩溃。

weixin_35982453的博客 1344

在Cocos2d-x中如何使用Spine骨骼动画

在Lua脚本中,你可以使用spine.SkeletonAnimation类来加载和播放Spine动画。然后,你可以使用spineAnimation对象来控制动画的播放。在Cocos2d-x中,你可以将Spine动画资源存储在项目资源文件夹中。注意:确保在使用Spine骨骼动画之前,已经正确安装并配置了spine-cocos2dx库。2.添加spine-cocos2dx库到项目中。其中,true表示循环播放,1表示播放速度。1.安装spine-cocos2dx库。3.使用Spine骨骼动画。

lp12345678910的专栏 1625

cocos2d-x-3.13.1 spine3.6.zip

cocos 3.13.1 更新了spine3.6 安卓编译通过 ios未测试

cocos2d-x-3.14.1的安装

(1)首先需要VS2015的开发环境,这个没有什么可说的 (2)安装python 2.7,版本必须正确2.X (3)www.cocos2d-x.com下载软件包 (4)进入引擎根目录执行setup.py

HappyToEat的博客 1300

spine3.0导出文件转换成cocos3.8可使用文件工具

spine3.0导出文件转换成cocos3.8可使用文件工具 是cocos3.8可以读取spine3.0导出的文件

cocos2d-x 3.0 spine1.9运行库

spine官方最新运行库,支持cocos2d-x 3.0读取spine1.9导出的文件。

从头配置,开发 cocos2dx 3.14.1

要使用cocos2dx写一个麻将测试工具. 配置流程如下: 1. 下载安装最新版本的VS(VS2017): https://www.visualstudio.com/zh-hans/downloads/2. 下载cocos2dx最新版本(3.14.1) http://www.cocos2d-x.org/download3. 下载安装 "适用于Windows 8.1的Windows软件开...

aibulie0537的博客 268

从零到一:DETR模型在自定义数据集上的实战部署与调优

本文详细介绍了DETR模型在自定义数据集上的实战部署与调优过程,包括环境准备、数据转换、模型配置、训练技巧及问题排查。通过具体代码示例和实用建议,帮助开发者高效完成从零到一的DETR模型部署,特别适合目标检测领域的实践应用。

weixin_42524100的博客 461

cocos2dx学习笔记(一)在cocos2dx 中使用spine骨骼动画

在cocos2dx 中使用spine骨骼动画初探最近在制作一款2D横版游戏,主要使用spine来做骨骼动画。 我用的是1.7版本的破解版spine,大家可以自行百度 刚打开spine就是一个样例:spineboy,我就打算用这个素材。 右边的资源栏有两个Animation,一个是跳(jump),一个是走路(walk),界面左上角有个setup按钮,点击会切换到动作模式,如下图: 动作模式下方

u012794461的博客 2万+

单片机笔记十二:华大HC32L136超低功耗设计实战

本文详细介绍了华大HC32L136单片机的超低功耗设计实战,包括深度睡眠模式下仅0.5μA的电流消耗、五种功耗模式的对比与配置、外设使用技巧及硬件级优化方法。通过实际项目案例,展示了如何利用ARM Cortex-M0+内核的HC32L136显著延长电池寿命,适用于智能门锁、额温枪等低功耗设备。

weixin_29189373的博客 387

【Creator】cocoscreator 2.4 apk还原为工程 (1)

Cocos Creator 2.4 还原图片 meta文件

jokesuser的博客 2258

cocos2dx3.14.1+win10+VS2017环境搭建

1.安装python(运行setup.py时用) 1.1 下载地址: https://www.python.org/downloads/ 我下的是python2.7版本,最新的是python2.7.13。python2和python3的区别请自行百度。 1.2 python环境变量(win10下) 打开文件夹->此电脑->左上角计算机->系统属性->高级系统设置->环境变量, 在下方系

u010536615的专栏 2万+

远程桌面(RDP)共享USB设备全攻略:不止Hyper-V,你的加密狗和CH340串口也能远程用

本文详细介绍了远程桌面(RDP)共享USB设备的完整解决方案,包括加密狗和CH340串口设备的远程使用技巧。通过RemoteFX USB重定向技术,用户可以在远程会话中无缝使用本地USB设备,提升工作效率。文章涵盖企业级配置、典型设备实战案例及高级故障排除方法,是远程工作者的实用指南。

weixin_42522964的博客 332

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

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

Astor的专栏 2855

CloudCompare 二次开发(9)——半径滤波

基于PCL对CloudCompare软件进行二次开发,实现的算法功能是半径滤波

点云侠的博客 1399

2024 年高教社杯全国大学生数学建模竞赛 E 题 交通流量管控 详细思路+matlab代码+python代码+论文范例

随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道。景区周边道路上既有本地居民出行,也有过境车辆,化配置,在保证车辆通行的前提下,使得两条主路上的车流平均速度最大。对五一黄金周期间的数据进行分析,判定寻找停车位的巡游车辆,并估算假。相位通过的每辆车的信息,包括拍摄地点、行驶方向、拍摄时间和车牌号。济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。纬中路交叉口,根据车流量的差异,可将一天分成若干个时段,估。是小镇中两条主路的情况:纬中路,从环西路到环东路,约。

YOLO 3310

cocos2d-x中定时器中spine动画变更问题

spine对象创建 : skeletonNode skeletonNode = spine::SkeletonAnimation::createWithJsonFile("spine/spineboy-ess.json", "spine/spineboy.atlas", 0.5f); skeletonNode->setAnimation(0, action, true); 用摇杆控制角...

weixin_42776548的博客 1166

某音私信接口二进制解析

本文探讨了某音私信接口的二进制请求处理过程,重点分析了请求体中的非文本字符和混合编码结构。文章详细描述了编码过程,包括使用Protocol Buffers的序列化方法将结构化数据转换为字节流,并通过Uint8Array包装成二进制数组。作者展示了如何提取和补全s.encode方法,并将其转化为Base64字符串以便在Python中解码执行

码王吴彦祖的博客 900

cocos2d-js3.15 spine使用中遇到的坑

var spineBoy = sp.SkeletonAnimation.createWithJsonFile('spine/shuyao.json', 'spine/shuyao.atlas', 0.6); spineBoy.setAnimation(0, 'wait', true);运行异常 Assert failed: Unknown attachment type: skinnedmes...

weixin_30439031的博客 665

YOLOv11 改进 - 特征融合 | 替换 C3k2 涨点:GELAN 融合 CSP+ELAN 提精度

本文介绍了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)与 YOLOv11 的结合,以解决深度网络数据传输时的信息丢失问题。PGI 能为目标任务提供完整输入信息,计算目标函数以更新网络权重。GELAN 作为轻量级网络架构,由 SPPELAN、ELAN1、RepNCSPELAN4 等模块组成。我们将 GELAN 代码集成进 YOLOv11, 实验脚本显示,结合 GELAN 的 YOLOv11 在 MS COCO 数据集目标检测任务中或有良好表现。

魔改工程师的博客 1242

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【Cocos2dx】【二】fairyGUI lua 接入

查阅了以下,就是 xml 、json 这种东西。数据按照固定规则排布的数据文件。.yml 和 .yaml是它的文件后缀。没有在添加代码会报这个错误。而Margin指的是fairygui自带的Margin类。那这行代码是啥意思呢?为什么不在 yaml 中填它的配置就会这样?先看看yaml各参数。

??? 816

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: C/C++: 生成不重复的一组随机数
下一篇: Cocos2dx杂记:cocos2dx 文本布局UI
胖胖的战士
博客等级 码龄18年 104粉丝 98原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值