嗨我需要拍摄我的精灵..我使用下面的代码
-(void)shooter
{
LHSprite* laserSprite = [lh newPhysicalSpriteWithUniqueName:@"ball_1" ];
b2Body* laserBody = [laserSprite body];
[self addChild:laserSprite z:10];
NSAssert(laserSprite!=nil, @"Couldn't find devil1");
[laserSprite transformPosition:_hero.position];
b2Vec2 ballvel = laserBody->GetLinearVelocity();
ballvel.x = 16;
laserBody->SetLinearVelocity(ballvel);
}
上面的代码拍摄精灵右侧,
但是我需要向左侧射击..即使我改变了ballvel.x = 16; to ballvel.x = -16;它还在向右侧射击......请帮忙
我是box2d的新手所以请温柔:)
答案 0 :(得分:0)
语法是这样的:
// 1。首先计算移动角度。 // 2。计算命中的力量(强度)。
b2Vec2 force;
force.x = cos(angle * M_PI / 180) * power;
force.y = sin(angle * M_PI / 180) * power;
laserBody->ApplyLinearImpulse(force, laserBody->GetPosition()); //or SetLinearVelocity
答案 1 :(得分:0)
实际上我的子弹精灵不是issensor ......所以它击中了英雄精灵,然后再次向右侧移动......我很糟糕......尴尬:D