quick怎么加载spine制作的spine 骨骼动画 素材

Spine 2D骨骼动画 与cocos2d-x
[问题点数:20分]
Spine 2D骨骼动画 与cocos2d-x
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。10:25:59 UTC
用到quick3.3中的spine(骨骼动画)在动画某一帧添加event后,在通过self.skeleteonNode:registerSpineEventHandler(handler(self, function(self,event)
dump(event)
if event.animation == "run" then
if event.name == "footstep" then
print("footstep")
endend),sp.EventType.ANIMATION_EVENT)这个方法得到事件为“footstep”,但是如果方法最后为sp.EventType.ANIMATION_EVENT或sp.EventType.ANIMATION_START或sp.EventType.ANIMATION_END,怎么也进入不到上面的function中,但是sp.EventType.ANIMATION_COMPLETE却可以,我通过断点找到了每一帧都会调用的方法,如下:
void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
spAnimationState* internal = SUBCAST(_spAnimationState, self);
int eventsC
int entryC
spTrackEntry*
for (i = 0; i & self-&tracksC ++i) {
spTrackEntry* current = self-&tracks*;
if (!current)
eventsCount = 0;
time = current-&
if (!current-&loop && time & current-&endTime) time = current-&endT
previous = current-&
if (!previous) {
if (current-&mix == 1) {
spAnimation_apply(current-&animation, skeleton, current-&lastTime, time,
current-&loop, internal-&events, &eventsCount);
spAnimation_mix(current-&animation, skeleton, current-&lastTime, time,
current-&loop, internal-&events, &eventsCount, current-&mix);
float alpha = current-&mixTime / current-&mixDuration * current-&
float previousTime = previous-&
if (!previous-&loop && previousTime & previous-&endTime) previousTime = previous-&endT
spAnimation_apply(previous-&animation, skeleton, previousTime, previousTime, previous-&loop, 0, 0);
if (alpha &= 1) {
alpha = 1;
internal-&disposeTrackEntry(current-&previous);
current-&previous = 0;
spAnimation_mix(current-&animation, skeleton, current-&lastTime, time,
current-&loop, internal-&events, &eventsCount, alpha);
entryChanged = 0;
for (ii = 0; ii & eventsC ++ii) {
spEvent* event = internal-&
if (current-&listener) {
current-&listener(self, i, SP_ANIMATION_EVENT, event, 0);
if (self-&tracks* != current) {
entryChanged = 1;
if (self-&listener) {
self-&listener(self, i, SP_ANIMATION_EVENT, event, 0);
if (self-&tracks* != current) {
entryChanged = 1;
if (entryChanged)
/* Check if completed the animation or a loop iteration. */
if (current-&loop ? (FMOD(current-&lastTime, current-&endTime) & FMOD(time, current-&endTime))
: (current-&lastTime & current-&endTime && time &= current-&endTime)) {
int count = (int)(time / current-&endTime);
if (current-&listener) {
current-&listener(self, i, SP_ANIMATION_COMPLETE, 0, count);
if (self-&tracks* != current)
if (self-&listener) {
self-&listener(self, i, SP_ANIMATION_COMPLETE, 0, count);
if (self-&tracks* != current)
current-&lastTime = current-&
}这个方法中有个参数int eventsC 这个eventsCount被赋值为0,下面又有个循环for (ii = 0; ii & eventsC ++ii),但是这个局部变量的值并没有发生改变,所以怎么也执行不到for循环中的方法,也就找不到骨骼动画的帧事件了。本人新人一枚,看源码也是马马虎虎,希望有了解的前辈指教。如果是我的方法用错了,能直接告诉我正确的使用方法是最好了,谢谢大家了!*****
10:27:42 UTC
力求了解的大神指教,不胜感激
03:46:08 UTC
木有人回答吗
今天问有人能用这个方法
为什么我不能用啊
资源问题会导致这个问题吗?
07:07:59 UTC
这个问题我已经自己解决了
原因是资源中没有events事件
让美工添加进去就好了
而eventCount这个值会发生变化是因为在下面的函数中用到了他的引用,在apply这个函数中(一步一步跟找到的)对这个值进行了改变,所以这个值会发生改变0.0
总结:奇怪的问题总是伴随着粗心而生成,希望大家引以为戒!
07:47:55 UTC
新人一枚 看到你的帖子 很大的帮助使用spine骨骼动画制作的libgdx游戏
(官网:)
Super Spineboy是一个使用Spine和libgdx开发的跨平台游戏(Windows,Mac,Linux),Spine是一个2D游戏动画工具。Super Spineboy是使用Spine骨骼动画的游戏。
Super Spineboy 可以运行在Windows,Mac或者Linux。JDK最低版本为JDK 6。下载地址如下:
运行Super Spineboy,双击运行superSpineboy.jar,或者从命令行下载:
java -jar superSpineboy.jar
1、鼠标左键射击,按住是设计
2、A向左,D向右,W是跳跃
3、点击 alt+ 回车 或者点击menu的Fullscreen全屏运行游戏。
4、点击1到6控制游戏速度。
5、点击p暂停。
6、点击z缩放
Super Spineboy使用java语言编写。使用了OpenGL,libgdx,Spine和spine-libgdx。低耦合的MVC设计模式的编码风格。
源码下载地址如下:
点击下载源码
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
本文是为了帮助很多新手少走弯路,大神请勿理会.不喜勿喷. 直接进入正题: 要使用spine骨骼动画,首先要安装一个运行环境(runtime),下载地址:/EsotericSoftware/spine-runtimes 需要注册一个GitHub账号才能下载.注册完毕后登入,点击&Download ZIP& ...
目的是要把粒子挂载到骨骼动画的某个一个部件上,其实最主要是找对位置. 预览效果,左手红火,右手蓝火,很炫吧:) //init bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { ...
此篇来说说王道君所犯下的二逼事: Sublime Text打开项目,右键run with player时,突然弹出来如下报错: 这么一个大红叉可吓死本君了~~ 翻来覆去的看代码,压根就觉得没问题. 死命的寻找了半天,终于找出了罪魁祸首:不知道什么原因,在res目录下多出了骨骼动画的文件:而这些文件已经存放在res下一个单独的文件夹内. 我再也不要如此伤心了! ...
看下下面两个文件 &spine/SkeletonRenderer.h&&spine/SkeletonAnimation.h& 1.lua中创建方法: sp.SkeletonAnimation:create(‘xxx.json’,'xxx.atlas', 1)
实际上绑定过来的create 是createwithfile,可以参考
skeletonNode = SkeletonAnimation::createWithFile(name1, atlas); skeletonNode-&getSkeleton()-&flipX = 1;
GitHub /EsotericSoftware/spine-runtimes 推荐一个2D骨骼动画编辑工具,可以用在Unity3D和As3
如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的资源量做出复杂的动画.最近在使用Dragonbones骨骼动画的时候,接触到了这么一个2D ...
转自:使用DragonBones开发FLASH骨骼动画入门教程 本文转载(并略作修改)自黄竣的教程,URL是:/getting_started_cn.html全文如下: DragonBones是什么? DragonBones是一套开源的 2D骨骼动画框架和工具,它包含了基于Flash Pro的骨骼动画 ...
下面的动画就是从Moho中的例子导出的swf文件,是不是很有意思?下面就请和我们一起进入Moho神奇骨骼动画之旅……
很多人会问:Moho与Flash到底有什么不同呢?概括地说,Flash是一个“全攻全守”型的多媒体动画设计软件:而Moho是一个二维矢量骨骼动画设计软件. Flash是一个全能型的多媒动画软件,它可以将声音.图像等多媒体文件包含于其 ...}

我要回帖

更多关于 quick cocos2dx spine 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信