box2d:使用box2d拍摄左侧

时间:2012-07-12 14:18:22

标签: iphone ios cocos2d-iphone box2d

嗨我需要拍摄我的精灵..我使用下面的代码

-(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的新手所以请温柔:)

2 个答案:

答案 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