ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Cocos2d-x-3.17.2 升级spine

2021-05-02 19:30:26  阅读:535  来源: 互联网

标签:cocos2dx Cocos2d 工程 format spine 3.17 文件夹 file


前言:


工作中一直是使用flash在做动画表现,随着flash的被遗弃,现在很多2D游戏动画都转为spine在做,业余时间就想尝试在cocos2dx中使用使一下spine。结果发现创建spine动画的时候报错:

查资料说是需要升级到最新的spine库,于是开始升级spine到最新版本。下面是一些我的环境配置:

cocos版本:cocos2d-x 3.17.2  

spine更新库下载地址:https://github.com/EsotericSoftware/spine-runtimes 

平台: windows

编译工具:Visual Studio 15 2017  CMake

Python 2.7.13

目前spine是支持cocos2dx 3.x 和 4.x版本的,根据你的需要自主选择。

这是spine官方提供的升级教程,其实整个升级过程不难,可能向我一样的新手有些部分可能不太理解,这里以cocos2dx 3.x版本为例进行升级

 

 

升级教程:


我是以cocos2dx cpp工程来进行升级的,所以先创建cocos2dx 工程,cocos2dx工程创建完毕,通过 CMake 创建模板工程:

工程创建完毕,红框文件是通过CMake创建的模板工程,具体环境搭建的详细部分可以参考官网:https://docs.cocos.com/cocos2d-x/manual/zh/installation/Windows.html

打开build-win32文件夹,找到.sln工程文件,打开:

可以进行编译,看一下默认工程能不能运行,我这里会遇到一个错:

解决办法也很简单,就是找到项目解决方案右键-》属性-》基本配置-》启动项,设置为你当前的项目就可以了:

 

创建工程完毕,然后删除cocos2dx工程内自带的旧版本spine,此处需要注意,spine文件夹下有一个CMakeLists.txt文件,这个是为了编译spine时使用的,后面我们会用到,不过也不用担心,后面用的时候会重新生成一份,所以这里直接把整个spine文件夹删除就可以:

然后打开使用vs打开工程,找到spine运行库,右键删除,将整个spine运行库删除,这一步是为了彻底将旧版本的spine引用从你的工程中清理掉:

然后去spine官网下载最新版的spine库,下载地址:https://github.com/EsotericSoftware/spine-runtimes ,下载完成之后,解压,将spine-cocos2dx下的spine/src/spine文件夹、spine-cpp下的include/spine文件夹、spine-cpp下的src/spine文件夹都拷贝到创建好的工程下的cocos2d/cocos/editor-support文件夹下:

在vs中打开工程,右键editor-support文件夹,新增文件夹,然后在新建的文件夹下新增已有项目将拷贝的所有文件都添加到的工程中:

然后在文件夹资源管理器下打开 你的工程\cocos2d\cocos\editor-support\spine  新建generate.py文件,将下列代码粘贴到其中,然后执行python文件,成功执行后会生成一个CMakeLists.txt文,这一步操作是为了将spine运行库,添加到编译列表中,在后面编译整个工程时候会将新版本的spine编译到工程中。如果报错也会有详细信息提示,根据提示修改就可以了:

import os
targetFile = "CMakeLists.txt"
prefix = "editor-support/spine/"
hFiles = []
cppFiles = []
def file_name():
	for root, folders, files in os.walk(os.getcwd()):
		for file in files:
			if os.path.splitext(file)[1] == '.h':
					ro = root.replace("\\", "/")
					if ro.rfind("v3") != -1:
						hFiles.append('{}v3/{}'.format(prefix, file))
					elif ro.rfind("v4") != -1:
						hFiles.append('{}v4/{}'.format(prefix, file))
					else:
						hFiles.append('{}{}'.format(prefix, file))
			elif os.path.splitext(file)[1] == '.cpp':
					ro = root.replace("\\", "/")
					if ro.rfind("v3") != -1:
						cppFiles.append('{}v3/{}'.format(prefix, file))
					elif ro.rfind("v4") != -1:
						cppFiles.append('{}v4/{}'.format(prefix, file))
					else:
						cppFiles.append('{}{}'.format(prefix, file))

file_name()

f = open(os.path.join(os.getcwd(), targetFile),"w")
f.write('include_directories(editor-support)\n\n    set(COCOS_SPINE_HEADER\n')
for file in hFiles:
	f.write('      {}\n'.format(file))
f.write('    )\n\n')

f.write("    set(COCOS_SPINE_SRC\n")
for file in cppFiles:
	f.write('      {}\n'.format(file))
f.write('    )')
f.close()

然后打开VS,重新编译,编译成功:

 

总结:


现在各种技术更新迭代实在太快,动不动就是各种版本的兼容问题,看了下网上关于spine升级的东西好像也不太多,有的也不太适合新手来学习,在cocos2dx引擎的使用方面,我也算是个新手,所以记录一下自己工程的升级过程,希望能帮到有需要的热爱程序的同行。

另外强推大家稍微学习一下python,太好用了。在生成spine运行库的CMakeLists.txt文件的时候,我是手动修改的,逐个文件输入,费事费力而且容易出错疏漏。使用python脚本完全不用担心这些问题。

标签:cocos2dx,Cocos2d,工程,format,spine,3.17,文件夹,file
来源: https://blog.csdn.net/qq_39025293/article/details/116355474

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有