Skip to content

Commit

Permalink
Added support for Particle Designer 1.3.60
Browse files Browse the repository at this point in the history
Spinning particles are supported
  • Loading branch information
ricardoquesada committed Apr 13, 2011
1 parent 0827c45 commit a5d8133
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 77 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
version 1.0-rc2 - XX-Apr-2011
. [NEW] Director: Use small dt when the game is being debugged.
. [NEW] Tests: Added test case for bug 1159
. [NEW] Particles: Added support for ParticleDesigner 1.3.60 (spinning support)
. [FIX] Particles: TTL is always >= 0.
. [FIX] Particles: texture coordinates are being used correctly when texture is NPOT.
. [FIX] Scheduler: Fixed possible crash when unscheduling a sibling
. [FIX] Templates: Use NS_BLOCK_ASSERTIONS and NDEBUG in Release Mode to remove asserts
. [FIX] Templates: Xcode 3 templates fixed. Removed unused files in cocos2d lib. Added missing files from TouchJSON
Expand Down
72 changes: 40 additions & 32 deletions Resources/Particles/SpinningPeas.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,55 +9,63 @@
<key>blendFuncDestination</key>
<integer>771</integer>
<key>blendFuncSource</key>
<integer>1</integer>
<integer>770</integer>
<key>duration</key>
<real>-1</real>
<key>emitterType</key>
<real>1</real>
<real>0</real>
<key>finishColorAlpha</key>
<real>1</real>
<real>0</real>
<key>finishColorBlue</key>
<real>1</real>
<key>finishColorGreen</key>
<real>1</real>
<key>finishColorRed</key>
<real>1</real>
<key>finishColorVarianceAlpha</key>
<real>1</real>
<real>0</real>
<key>finishColorVarianceBlue</key>
<real>1</real>
<real>0</real>
<key>finishColorVarianceGreen</key>
<real>1</real>
<real>0</real>
<key>finishColorVarianceRed</key>
<real>1</real>
<real>0</real>
<key>finishParticleSize</key>
<real>0.0</real>
<real>64</real>
<key>finishParticleSizeVariance</key>
<real>0.0</real>
<real>0</real>
<key>gravityx</key>
<real>0.0</real>
<real>0</real>
<key>gravityy</key>
<real>0.0</real>
<real>0</real>
<key>maxParticles</key>
<real>1000</real>
<real>15</real>
<key>maxRadius</key>
<real>331.57998657226562</real>
<real>331.5799865722656</real>
<key>maxRadiusVariance</key>
<real>0.0</real>
<real>0</real>
<key>minRadius</key>
<real>0.0</real>
<real>0</real>
<key>particleLifespan</key>
<real>10</real>
<key>particleLifespanVariance</key>
<real>0.0</real>
<key>radialAccelVariance</key>
<real>0.0</real>
<real>0</real>
<key>radialAcceleration</key>
<real>0.0</real>
<real>0</real>
<key>radialAccelVariance</key>
<real>0</real>
<key>rotatePerSecond</key>
<real>0.0</real>
<real>0</real>
<key>rotatePerSecondVariance</key>
<real>68.680000305175781</real>
<real>68.68000030517578</real>
<key>rotationEnd</key>
<integer>0</integer>
<key>rotationEndVariance</key>
<integer>3600</integer>
<key>rotationStart</key>
<real>0</real>
<key>rotationStartVariance</key>
<real>0</real>
<key>sourcePositionVariancex</key>
<real>7</real>
<key>sourcePositionVariancey</key>
Expand All @@ -67,9 +75,9 @@
<key>sourcePositiony</key>
<real>222</real>
<key>speed</key>
<real>225</real>
<real>20</real>
<key>speedVariance</key>
<real>30</real>
<real>0</real>
<key>startColorAlpha</key>
<real>1</real>
<key>startColorBlue</key>
Expand All @@ -79,23 +87,23 @@
<key>startColorRed</key>
<real>1</real>
<key>startColorVarianceAlpha</key>
<real>1</real>
<real>0</real>
<key>startColorVarianceBlue</key>
<real>1</real>
<real>0</real>
<key>startColorVarianceGreen</key>
<real>1</real>
<real>0</real>
<key>startColorVarianceRed</key>
<real>1</real>
<real>0</real>
<key>startParticleSize</key>
<real>64</real>
<key>startParticleSizeVariance</key>
<real>29.049999237060547</real>
<key>tangentialAccelVariance</key>
<real>0.0</real>
<real>0</real>
<key>tangentialAcceleration</key>
<real>0.0</real>
<real>0</real>
<key>tangentialAccelVariance</key>
<real>0</real>
<key>textureFileName</key>
<string>SpinningPeas.png</string>
<string>particleTexture.png</string>
<key>textureImageData</key>
<string>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</string>
</dict>
Expand Down
16 changes: 13 additions & 3 deletions cocos2d/CCParticleSystem.m
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,12 @@ -(id) initWithDictionary:(NSDictionary *)dictionary
posVar.y = [[dictionary valueForKey:@"sourcePositionVariancey"] floatValue];


// Spinning
startSpin = [[dictionary valueForKey:@"rotationStart"] floatValue];
startSpinVar = [[dictionary valueForKey:@"rotationStartVariance"] floatValue];
endSpin = [[dictionary valueForKey:@"rotationEnd"] floatValue];
endSpinVar = [[dictionary valueForKey:@"rotationEndVariance"] floatValue];

emitterMode_ = [[dictionary valueForKey:@"emitterType"] intValue];

// Mode A: Gravity + tangential accel + radial accel
Expand Down Expand Up @@ -214,11 +220,15 @@ -(id) initWithDictionary:(NSDictionary *)dictionary
// Try to get the texture from the cache
NSString *textureName = [dictionary valueForKey:@"textureFileName"];

self.texture = [[CCTextureCache sharedTextureCache] addImage:textureName];
CCTexture2D *tex = [[CCTextureCache sharedTextureCache] textureForKey:textureName];

if( tex )
self.texture = tex;

NSString *textureData = [dictionary valueForKey:@"textureImageData"];
else {

if ( ! texture_ && textureData) {
NSString *textureData = [dictionary valueForKey:@"textureImageData"];
NSAssert( textureData, @"CCParticleSystem: Couldn't load texture");

// if it fails, try to get it from the base64-gzipped data
unsigned char *buffer = NULL;
Expand Down
86 changes: 44 additions & 42 deletions tests/ParticleTest.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,42 +19,42 @@
static int sceneIdx=-1;
static NSString *transitions[] = {

@"DemoFlower",
@"DemoGalaxy",
@"DemoFirework",
@"DemoSpiral",
@"DemoSun",
@"DemoMeteor",
@"DemoFire",
@"DemoSmoke",
@"DemoExplosion",
@"DemoSnow",
@"DemoRain",
@"DemoBigFlower",
@"DemoRotFlower",
@"DemoModernArt",
@"DemoRing",

@"ParallaxParticle",

@"ParticleDesigner1",
@"ParticleDesigner2",
@"ParticleDesigner3",
@"ParticleDesigner4",
@"ParticleDesigner5",
@"ParticleDesigner6",
@"ParticleDesigner7",
@"ParticleDesigner8",
@"ParticleDesigner9",
@"ParticleDesigner10",
@"ParticleDesigner11",
@"ParticleDesigner12",

@"RadiusMode1",
@"RadiusMode2",
@"Issue704",
@"Issue872",
@"Issue870",
@"DemoFlower",
@"DemoGalaxy",
@"DemoFirework",
@"DemoSpiral",
@"DemoSun",
@"DemoMeteor",
@"DemoFire",
@"DemoSmoke",
@"DemoExplosion",
@"DemoSnow",
@"DemoRain",
@"DemoBigFlower",
@"DemoRotFlower",
@"DemoModernArt",
@"DemoRing",

@"ParallaxParticle",

@"ParticleDesigner1",
@"ParticleDesigner2",
@"ParticleDesigner3",
@"ParticleDesigner4",
@"ParticleDesigner5",
@"ParticleDesigner6",
@"ParticleDesigner7",
@"ParticleDesigner8",
@"ParticleDesigner9",
@"ParticleDesigner10",
@"ParticleDesigner11",
@"ParticleDesigner12",

@"RadiusMode1",
@"RadiusMode2",
@"Issue704",
@"Issue872",
@"Issue870",
};

Class nextAction()
Expand Down Expand Up @@ -836,8 +836,15 @@ -(void) onEnter
[self removeChild:background cleanup:YES];
background = nil;


self.emitter = [CCParticleSystemQuad particleWithFile:@"Particles/SpookyPeas.plist"];
[self addChild: emitter z:10];

// custom spinning
self.emitter.startSpin = 0;
self.emitter.startSpinVar = 360;
self.emitter.endSpin = 720;
self.emitter.endSpinVar = 360;
}

-(NSString *) title
Expand All @@ -858,13 +865,8 @@ -(void) onEnter
background = nil;

self.emitter = [CCParticleSystemQuad particleWithFile:@"Particles/SpinningPeas.plist"];

[self addChild: emitter z:10];

// custom spinning
self.emitter.startSpin = 0;
self.emitter.startSpinVar = 360;
self.emitter.endSpin = 720;
self.emitter.endSpinVar = 360;
}

-(NSString *) title
Expand Down

0 comments on commit a5d8133

Please sign in to comment.