From b08b2d217e323bc1c00370ff73b7a39090690b9d Mon Sep 17 00:00:00 2001 From: Lars Birkemose Date: Sun, 10 Aug 2014 13:57:13 +0200 Subject: [PATCH] Bezier added for Spine --- .../{CCSpineBezierCurve.h => CCSpineCurve.h} | 2 +- .../{CCSpineBezierCurve.m => CCSpineCurve.m} | 42 +++++++++++++----- Extensions/CCSpine/CCSpineSample.h | 4 +- Extensions/CCSpine/CCSpineSample.m | 2 +- cocos2d-iphone-ext.xcodeproj/project.pbxproj | 12 ++--- .../UserInterfaceState.xcuserstate | Bin 26732 -> 29448 bytes .../WorkspaceSettings.xcsettings | 10 +++++ 7 files changed, 52 insertions(+), 20 deletions(-) rename Extensions/CCSpine/{CCSpineBezierCurve.h => CCSpineCurve.h} (98%) rename Extensions/CCSpine/{CCSpineBezierCurve.m => CCSpineCurve.m} (75%) create mode 100644 cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/WorkspaceSettings.xcsettings diff --git a/Extensions/CCSpine/CCSpineBezierCurve.h b/Extensions/CCSpine/CCSpineCurve.h similarity index 98% rename from Extensions/CCSpine/CCSpineBezierCurve.h rename to Extensions/CCSpine/CCSpineCurve.h index 34b843c..121713d 100644 --- a/Extensions/CCSpine/CCSpineBezierCurve.h +++ b/Extensions/CCSpine/CCSpineCurve.h @@ -38,7 +38,7 @@ typedef NS_ENUM(NSInteger, CCSpineInterpolation) // ---------------------------------------------------------------------------------------------- -@interface CCSpineBezierCurve : NSObject +@interface CCSpineCurve : NSObject // ---------------------------------------------------------------------------------------------- diff --git a/Extensions/CCSpine/CCSpineBezierCurve.m b/Extensions/CCSpine/CCSpineCurve.m similarity index 75% rename from Extensions/CCSpine/CCSpineBezierCurve.m rename to Extensions/CCSpine/CCSpineCurve.m index 64a08f8..72151c7 100644 --- a/Extensions/CCSpine/CCSpineBezierCurve.m +++ b/Extensions/CCSpine/CCSpineCurve.m @@ -24,22 +24,23 @@ * THE SOFTWARE. */ -#import "CCSpineBezierCurve.h" +#import "CCSpineCurve.h" // ---------------------------------------------------------------------------------------------- -@implementation CCSpineBezierCurve +@implementation CCSpineCurve { CCSpineInterpolation _interpolation; NSInteger _count; CGPoint *_bezier; + CGPoint *_coefficient; } // ---------------------------------------------------------------------------------------------- + (instancetype)bezierCurveWithDictionary:(NSDictionary *)dict { - return([[CCSpineBezierCurve alloc] initWithDictionary:dict]); + return([[CCSpineCurve alloc] initWithDictionary:dict]); } // ---------------------------------------------------------------------------------------------- @@ -53,6 +54,7 @@ - (instancetype)initWithDictionary:(NSDictionary *)dict _interpolation = CCSpineInterpolationLinear; _count = 0; _bezier = NULL; + _coefficient = NULL; // load values from dictionary id object = [dict objectForKey:@"curve"]; if ([object isKindOfClass:[NSString class]]) @@ -71,9 +73,9 @@ - (instancetype)initWithDictionary:(NSDictionary *)dict } else if ([object isKindOfClass:[NSArray class]]) { - // curve defined as an array - // this must be an array of floats - // add 0 at the begining and 1 at the end, to make later interpolation easier + // curve defined as two points + // start point is 0,0 + // end point is 1,1 NSArray* array = object; if (array.count > 0) { @@ -84,9 +86,21 @@ - (instancetype)initWithDictionary:(NSDictionary *)dict for (NSNumber* value in array) { // read alternating values as x, y - if ((index & 1) == 0) _bezier[index / 2].x = [value floatValue]; else _bezier[index / 2].y = [value floatValue]; + if ((index & 1) == 0) + { + _bezier[index / 2].x = [value floatValue]; + } + else + { + _bezier[index / 2].y = [value floatValue]; + } index ++; } + // calculate coefficients + _coefficient = malloc(3 * sizeof(CGPoint)); + _coefficient[2] = ccpMult(_bezier[0], 3); + _coefficient[1] = ccpSub(ccpMult(ccpSub(_bezier[1], _bezier[0]), 3), _coefficient[2]); + _coefficient[0] = ccpSub(ccpSub(ccp(1,1), _coefficient[2]), _coefficient[1]); } } @@ -100,6 +114,7 @@ - (void)dealloc { // clean up if (_bezier != NULL) free(_bezier); + if (_coefficient != NULL) free(_coefficient); } @@ -115,13 +130,20 @@ - (float)translate:(float)value case CCSpineInterpolationStepped: return(0); case CCSpineInterpolationBezier: + { + float t2 = value * value; + float t3 = t2 * value; + float result = (_coefficient[0].y * t3) + (_coefficient[1].y * t2) + (_coefficient[2].y * value); + + + // TODO // convert according to bezier curve - return(value); - + return(result); + } } - NSAssert(NO, @"[CCSpineBezierCurve translate] Invalid interpolation"); + NSAssert(NO, @"[CCSpineCurve translate] Invalid interpolation"); return(0); } diff --git a/Extensions/CCSpine/CCSpineSample.h b/Extensions/CCSpine/CCSpineSample.h index 1fab2a3..95c4df3 100644 --- a/Extensions/CCSpine/CCSpineSample.h +++ b/Extensions/CCSpine/CCSpineSample.h @@ -26,7 +26,7 @@ #import #import "CCDictionary.h" -#import "CCSpineBezierCurve.h" +#import "CCSpineCurve.h" // ---------------------------------------------------------------------------------------------- @@ -55,7 +55,7 @@ typedef struct @property (nonatomic, readonly) float time; @property (nonatomic, readonly) CCSpineSampleType type; @property (nonatomic, readonly) CCSpineBoneData data; -@property (nonatomic, readonly) CCSpineBezierCurve *curve; +@property (nonatomic, readonly) CCSpineCurve *curve; // TODO add color diff --git a/Extensions/CCSpine/CCSpineSample.m b/Extensions/CCSpine/CCSpineSample.m index 08af0cd..baebc39 100644 --- a/Extensions/CCSpine/CCSpineSample.m +++ b/Extensions/CCSpine/CCSpineSample.m @@ -73,7 +73,7 @@ - (instancetype)initDictionary:(NSDictionary *)dict andType:(CCSpineSampleType)t } // load curve - _curve = [CCSpineBezierCurve bezierCurveWithDictionary:dict]; + _curve = [CCSpineCurve bezierCurveWithDictionary:dict]; // done return(self); diff --git a/cocos2d-iphone-ext.xcodeproj/project.pbxproj b/cocos2d-iphone-ext.xcodeproj/project.pbxproj index a30ddb4..4066b19 100644 --- a/cocos2d-iphone-ext.xcodeproj/project.pbxproj +++ b/cocos2d-iphone-ext.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 0E21D306198A47A400E84AB1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 0E21D305198A47A400E84AB1 /* README.md */; }; 0E21D30C198A484600E84AB1 /* CCSpriteMultiTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E21D30B198A484600E84AB1 /* CCSpriteMultiTouch.m */; }; 0E21D30F198A637900E84AB1 /* CCSpriteMultiTouchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E21D30E198A637900E84AB1 /* CCSpriteMultiTouchTest.m */; }; + 0ED73BB51997951A00C83507 /* CCSpineCurve.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED73BB41997951A00C83507 /* CCSpineCurve.m */; }; A6270E62193757E400196BD3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6270E61193757E400196BD3 /* QuartzCore.framework */; }; A6270E64193757E400196BD3 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6270E63193757E400196BD3 /* OpenGLES.framework */; }; A6270E66193757E400196BD3 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6270E65193757E400196BD3 /* OpenAL.framework */; }; @@ -83,7 +84,6 @@ A66C582E193A0C87009D2BD4 /* chase_johnson.png in Resources */ = {isa = PBXBuildFile; fileRef = A66C5815193A0C87009D2BD4 /* chase_johnson.png */; }; A66C5830193A0C87009D2BD4 /* CCSpineAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C5819193A0C87009D2BD4 /* CCSpineAnimation.m */; }; A66C5831193A0C87009D2BD4 /* CCSpineAnimationControl.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C581B193A0C87009D2BD4 /* CCSpineAnimationControl.m */; }; - A66C5832193A0C87009D2BD4 /* CCSpineBezierCurve.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C581D193A0C87009D2BD4 /* CCSpineBezierCurve.m */; }; A66C5833193A0C87009D2BD4 /* CCSpineBone.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C581F193A0C87009D2BD4 /* CCSpineBone.m */; }; A66C5834193A0C87009D2BD4 /* CCSpineSample.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C5821193A0C87009D2BD4 /* CCSpineSample.m */; }; A66C5835193A0C87009D2BD4 /* CCSpineSkeleton.m in Sources */ = {isa = PBXBuildFile; fileRef = A66C5823193A0C87009D2BD4 /* CCSpineSkeleton.m */; }; @@ -125,6 +125,8 @@ 0E21D30A198A484600E84AB1 /* CCSpriteMultiTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpriteMultiTouch.h; path = Extensions/CCSpriteMultiTouch/CCSpriteMultiTouch.h; sourceTree = SOURCE_ROOT; }; 0E21D30B198A484600E84AB1 /* CCSpriteMultiTouch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpriteMultiTouch.m; path = Extensions/CCSpriteMultiTouch/CCSpriteMultiTouch.m; sourceTree = SOURCE_ROOT; }; 0E21D30E198A637900E84AB1 /* CCSpriteMultiTouchTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpriteMultiTouchTest.m; path = Classes/Tests/CCSpriteMultiTouchTest.m; sourceTree = ""; }; + 0ED73BB31997951A00C83507 /* CCSpineCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpineCurve.h; path = Extensions/CCSpine/CCSpineCurve.h; sourceTree = SOURCE_ROOT; }; + 0ED73BB41997951A00C83507 /* CCSpineCurve.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpineCurve.m; path = Extensions/CCSpine/CCSpineCurve.m; sourceTree = SOURCE_ROOT; }; A6254BAF193A1438006BD09E /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = Extensions/CCNodeTag/README.md; sourceTree = SOURCE_ROOT; }; A6254BB1193A144A006BD09E /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = Extensions/CCDictionary/README.md; sourceTree = SOURCE_ROOT; }; A6254BB3193A145D006BD09E /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = Extensions/CCSpine/README.md; sourceTree = SOURCE_ROOT; }; @@ -212,8 +214,6 @@ A66C5819193A0C87009D2BD4 /* CCSpineAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpineAnimation.m; path = Extensions/CCSpine/CCSpineAnimation.m; sourceTree = SOURCE_ROOT; }; A66C581A193A0C87009D2BD4 /* CCSpineAnimationControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpineAnimationControl.h; path = Extensions/CCSpine/CCSpineAnimationControl.h; sourceTree = SOURCE_ROOT; }; A66C581B193A0C87009D2BD4 /* CCSpineAnimationControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpineAnimationControl.m; path = Extensions/CCSpine/CCSpineAnimationControl.m; sourceTree = SOURCE_ROOT; }; - A66C581C193A0C87009D2BD4 /* CCSpineBezierCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpineBezierCurve.h; path = Extensions/CCSpine/CCSpineBezierCurve.h; sourceTree = SOURCE_ROOT; }; - A66C581D193A0C87009D2BD4 /* CCSpineBezierCurve.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpineBezierCurve.m; path = Extensions/CCSpine/CCSpineBezierCurve.m; sourceTree = SOURCE_ROOT; }; A66C581E193A0C87009D2BD4 /* CCSpineBone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpineBone.h; path = Extensions/CCSpine/CCSpineBone.h; sourceTree = SOURCE_ROOT; }; A66C581F193A0C87009D2BD4 /* CCSpineBone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CCSpineBone.m; path = Extensions/CCSpine/CCSpineBone.m; sourceTree = SOURCE_ROOT; }; A66C5820193A0C87009D2BD4 /* CCSpineSample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCSpineSample.h; path = Extensions/CCSpine/CCSpineSample.h; sourceTree = SOURCE_ROOT; }; @@ -498,8 +498,8 @@ A66C5819193A0C87009D2BD4 /* CCSpineAnimation.m */, A66C581A193A0C87009D2BD4 /* CCSpineAnimationControl.h */, A66C581B193A0C87009D2BD4 /* CCSpineAnimationControl.m */, - A66C581C193A0C87009D2BD4 /* CCSpineBezierCurve.h */, - A66C581D193A0C87009D2BD4 /* CCSpineBezierCurve.m */, + 0ED73BB31997951A00C83507 /* CCSpineCurve.h */, + 0ED73BB41997951A00C83507 /* CCSpineCurve.m */, A66C581E193A0C87009D2BD4 /* CCSpineBone.h */, A66C581F193A0C87009D2BD4 /* CCSpineBone.m */, A66C5820193A0C87009D2BD4 /* CCSpineSample.h */, @@ -715,6 +715,7 @@ buildActionMask = 2147483647; files = ( 0E21D30F198A637900E84AB1 /* CCSpriteMultiTouchTest.m in Sources */, + 0ED73BB51997951A00C83507 /* CCSpineCurve.m in Sources */, A6994F85194A2FAC00B97481 /* CCTransformationNodeTest.m in Sources */, A627126E19375F2700196BD3 /* TestBase.m in Sources */, A66C5838193A0C87009D2BD4 /* CCSpineTexture.m in Sources */, @@ -736,7 +737,6 @@ 0E21D30C198A484600E84AB1 /* CCSpriteMultiTouch.m in Sources */, A66C5837193A0C87009D2BD4 /* CCSpineSprite.m in Sources */, A66C580E193A0C69009D2BD4 /* CCNodeTag.m in Sources */, - A66C5832193A0C87009D2BD4 /* CCSpineBezierCurve.m in Sources */, A627110B193757E600196BD3 /* AppDelegate.m in Sources */, A66C5834193A0C87009D2BD4 /* CCSpineSample.m in Sources */, ); diff --git a/cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/UserInterfaceState.xcuserstate b/cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/UserInterfaceState.xcuserstate index 006dd6581009b31bf09e2c34b97b44dfa30a497e..bfee2ff52b739acd8d5cbb5ef23f60b4e3917cfd 100644 GIT binary patch literal 29448 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%0Anw?3=iz`jH;js;`^T)@$hNHqh7YpsRD>XD%0Y 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 P;-{Oh`04mtll1=pppzQU diff --git a/cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/WorkspaceSettings.xcsettings b/cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..bfffcfe --- /dev/null +++ b/cocos2d-iphone-ext.xcodeproj/project.xcworkspace/xcuserdata/Birkemose.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + +