小编Ada*_*Roy的帖子

CCPhysicsjoint不保持2个身体完好无损

我想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 …

cocos2d-x cocos2d-x-3.0

7
推荐指数
0
解决办法
406
查看次数

标签 统计

cocos2d-x ×1

cocos2d-x-3.0 ×1