我想Fire
在另一个物理体(the arrow
)之前添加一个粒子体(比方说).因此,我正在使用它spring joint
来保持它们在20000左右的刚度,但它仍然以正确的方式开始并且粒子体从箭头摆动.这是我的代码:
fire part
CCParticleSystem *explosion= [CCParticleSystem particleWithFile:@"bomb.plist"];
explosion.position = ccpAdd(projectilePos, ccp(16,0));
explosion.physicsBody.mass=1.0;
explosion.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:16.0 andCenter:explosion.anchorPointInPoints];
explosion.physicsBody.type=CCPhysicsBodyTypeDynamic;
explosion.physicsBody.affectedByGravity=FALSE;
explosion.physicsBody.allowsRotation=FALSE; //so that fire flames go upwards only, and not rotate
[physicsWorld addChild:explosion];
explosion.physicsBody.collisionMask=@[];
Run Code Online (Sandbox Code Playgroud)
arrow part
CCSprite *tempSprite;
tempSprite = [CCSprite spriteWithImageNamed:@"arrow3@2x.png"];
[tempSprite setScale:0.05];
[tempSprite setScaleY:0.15];
tempSprite.rotation=rotation;
tempSprite.position=dummyBow.position;
tempSprite.name=[NSString stringWithFormat:@"%@,%d",[lifeOfSprite[1] objectForKey:@"name"],[[lifeOfSprite[1] objectForKey:@"life"] intValue]];
tempSprite.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, tempSprite.contentSize} cornerRadius:0]; // 1
tempSprite.physicsBody.collisionGroup = @"playerGroup";
tempSprite.physicsBody.collisionType = @"projectileCollision";
[physicsWorld addChild:tempSprite z:0];
projectile.physicsBody.mass=100;
Run Code Online (Sandbox Code Playgroud)
now the joint …