Box2d,Cocos2D - 相同的身体,相同的冲动,但不同的效果
问题描述:
在我的游戏中,每隔2秒钟我创建一个新身体,然后对这个Box2d身体施加冲动。Box2d,Cocos2D - 相同的身体,相同的冲动,但不同的效果
我的问题是冲动还是一样,但身体在两个方面的表现:
它慢慢地从下至上,或其他时间很快倒下
我想身体的行为冲动之后也是如此,有可能吗?
代码:
- (void)newBullet
{
CGPoint touchedAt;
touchedAt.x = 184;
touchedAt.y = 1200;
bullet = [CCSprite spriteWithSpriteSheet:spriteSheet rect:CGRectMake(586, 719, 32, 32)];
[spriteSheet addChild: bullet z: 10 tag: 8];
bullet.position = ccp(touchedAt.x , touchedAt.y);
bullet.rotation = 90;
bulletBodyDef.type = b2_dynamicBody;
bulletBodyDef.position.Set(touchedAt.x/PTM_RATIO, touchedAt.y/PTM_RATIO);
bulletBodyDef.userData = bullet;
bulletBodyDef.angle = CC_DEGREES_TO_RADIANS(90);
bulletBody = _world->CreateBody(&bulletBodyDef);
b2CircleShape bulletShape;
bulletShape.m_radius = bullet.contentSize.width/PTM_RATIO/2;
b2FixtureDef bulletShapeDef;
bulletShapeDef.shape = &bulletShape;
bulletShapeDef.density = 0.0f;
bulletShapeDef.friction = 0.9f;
bulletShapeDef.restitution = 0.0f;
bulletShapeDef.isSensor = false;
bulletFixture = bulletBody->CreateFixture(&bulletShapeDef);
b2Vec2 force = b2Vec2(6.0f, 4.0f);
bulletBody->ApplyImpulse(force, bulletBody->GetPosition());
}
视频(对不起,质量差,但你可以明白我的意思) http://vimeo.com/34215327
答
我不知道你是如何调用此方法,但我认为,你可以更多地控制你调用方法的位置,以及你在box2d时间步骤的位置,它可能与此无关,但值得一试。可能发生的事情是冲动没有被应用,因为决定身体速度的求解器直到你重置力量(我假设你正在做的)才会被调用,所以效果就会丢失。
“直到你重置力量”Ups ..我忘了它。现在效果很好,非常感谢 – Dawid 2011-12-26 21:13:43