0

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

-(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; 到ballvel.x = -16;它仍在向右侧射击..请帮助

我是box2d的新手,所以请温柔:)

4

2 回答 2

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
于 2012-07-12T14:41:07.000 回答
0

实际上我的子弹精灵不是传感器......所以它击中了英雄精灵然后它又回到了右侧......我的坏......尴尬:D

于 2012-07-17T05:02:21.393 回答