From 0e9cb8ee26b30cc124b5c930e3898aacde9a9044 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 11 Apr 2017 12:40:40 +0200 Subject: [PATCH] [cocos2d-objc] Fixed signature of SkeletonAnimation addAnimationForTrack, samples --- spine-cocos2d-objc/example/SpineboyExample.m | 18 ++++++++++++------ .../src/spine/SkeletonAnimation.h | 2 +- .../src/spine/SkeletonAnimation.m | 2 +- .../src/spine/SkeletonRenderer.m | 3 +-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/spine-cocos2d-objc/example/SpineboyExample.m b/spine-cocos2d-objc/example/SpineboyExample.m index af7f7adeb..d7eff6eae 100644 --- a/spine-cocos2d-objc/example/SpineboyExample.m +++ b/spine-cocos2d-objc/example/SpineboyExample.m @@ -35,8 +35,7 @@ + (CCScene*) scene { CCScene *scene = [CCScene node]; - [scene addChild:[SpineboyExample node]]; - [scene setColorRGBA: [CCColor colorWithRed:1 green:0 blue:0]]; + [scene addChild:[SpineboyExample node]]; return scene; } @@ -44,7 +43,7 @@ self = [super init]; if (!self) return nil; - skeletonNode = [SkeletonAnimation skeletonWithFile:@"TwoColorTest.json" atlasFile:@"TwoColorTest.atlas" scale:0.2]; + skeletonNode = [SkeletonAnimation skeletonWithFile:@"spineboy.json" atlasFile:@"spineboy.atlas" scale:0.4]; [skeletonNode setMixFrom:@"walk" to:@"jump" duration:0.2f]; [skeletonNode setMixFrom:@"jump" to:@"run" duration:0.2f]; @@ -70,12 +69,14 @@ NSLog(@"%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); }; - [skeletonNode setAnimationForTrack:0 name:@"animation" loop:YES]; + [skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES]; + [skeletonNode addAnimationForTrack:0 name:@"jump" loop:NO afterDelay:2]; + [skeletonNode addAnimationForTrack:0 name:@"run" loop:YES afterDelay:0]; // [skeletonNode setAnimationForTrack:1 name:@"test" loop:YES]; CGSize windowSize = [[CCDirector sharedDirector] viewSize]; - [skeletonNode setPosition:ccp(windowSize.width / 2, windowSize.height / 2)]; + [skeletonNode setPosition:ccp(windowSize.width / 2, 20)]; [self addChild:skeletonNode]; self.userInteractionEnabled = YES; @@ -86,7 +87,12 @@ #if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR ) - (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { - skeletonNode.twoColorTint = !skeletonNode.twoColorTint; + if (!skeletonNode.debugBones) + skeletonNode.debugBones = true; + else if (skeletonNode.timeScale == 1) + skeletonNode.timeScale = 0.3f; + else + [[CCDirector sharedDirector] replaceScene:[GoblinsExample scene]]; } #endif diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h index 4c2715c92..c372f615f 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h @@ -68,7 +68,7 @@ typedef void(^spEventListener)(spTrackEntry* entry, spEvent* event); - (void) setMixFrom:(NSString*)fromAnimation to:(NSString*)toAnimation duration:(float)duration; - (spTrackEntry*) setAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop; -- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(int)delay; +- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(float)delay; - (spTrackEntry*) getCurrentForTrack:(int)trackIndex; - (void) clearTracks; - (void) clearTrack:(int)trackIndex; diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m index 7be6cadf8..59d314981 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m @@ -179,7 +179,7 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) { return spAnimationState_setAnimation(_state, trackIndex, animation, loop); } -- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(int)delay { +- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(float)delay { spAnimation* animation = spSkeletonData_findAnimation(_skeleton->data, [name UTF8String]); if (!animation) { CCLOG(@"Spine: Animation not found: %@", name); diff --git a/spine-cocos2d-objc/src/spine/SkeletonRenderer.m b/spine-cocos2d-objc/src/spine/SkeletonRenderer.m index 0039e7061..bcd3c8d66 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonRenderer.m +++ b/spine-cocos2d-objc/src/spine/SkeletonRenderer.m @@ -163,8 +163,7 @@ static bool handlerQueued = false; // notification system that may break if the block is called on a // separate thread. if (!handlerQueued) { - [[CCDirector sharedDirector] addFrameCompletionHandler: ^{ - printf("clearing mesh\n"); + [[CCDirector sharedDirector] addFrameCompletionHandler: ^{ spMesh_clearParts(mesh); handlerQueued = false; }];